Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to style the number on a html list?

Tags:

Is it possible to style or increase the size of the numbers only on a ordered list?

I am planning on turning a ordered list ol into something like wikihow steps using CSS only.

Here is a example to play with: http://jsfiddle.net/ejRzy/1/

like image 984
filype Avatar asked Jun 25 '12 02:06

filype


People also ask

How do you format a numbered list in HTML?

To create ordered list in HTML, use the <ol> tag. Ordered list starts with the <ol> tag. The list item starts with the <li> tag and will be marked as numbers, lowercase letters uppercase letters, roman letters, etc.

How do you style a list of numbers in CSS?

If you want to number items in order, you can use the <ol> (ordered list) tag. But it is kind of hard to style those list numbers in CSS. There is an easier way to create a number styled list of item using the :before pseudo element along with counter properties.


2 Answers

It can be done using CSS3 but not 100% cross browser (namely IE7). using the pseudo :before element and counter-reset and counter-increment you can hide the list-style and create your own.

here is an article outlining how: Styling ordered list numbers

and here is a demo built from that article.

Also in case of the dreaded link rot - here is the main CSS code required (this can be applied to any ordered list)

ol {
    counter-reset:li; /* Initiate a counter */
    margin-left:0; /* Remove the default left margin */
    padding-left:0; /* Remove the default left padding */
}
ol > li {
    position:relative; /* Create a positioning context */
    margin:0 0 6px 2em; /* Give each list item a left margin to make room for the numbers */
    padding:4px 8px; /* Add some spacing around the content */
    list-style:none; /* Disable the normal item numbering */
    border-top:2px solid #666;
    background:#f6f6f6;
}
ol > li:before {
    content:counter(li); /* Use the counter as content */
    counter-increment:li; /* Increment the counter by 1 */
    /* Position and style the number */
    position:absolute;
    top:-2px;
    left:-2em;
    -moz-box-sizing:border-box;
    -webkit-box-sizing:border-box;
    box-sizing:border-box;
    width:2em;
    /* Some space between the number and the content in browsers that support
       generated content but not positioning it (Camino 2 is one example) */
    margin-right:8px;
    padding:4px;
    border-top:2px solid #666;
    color:#fff;
    background:#666;
    font-weight:bold;
    font-family:"Helvetica Neue", Arial, sans-serif;
    text-align:center;
}
li ol,
li ul {margin-top:6px;}
ol ol li:last-child {margin-bottom:0;}​

This code will produce a custom ordered list; albeit not the style you asked for. I will leave the customization work upto you :) cheers

like image 168
rlemon Avatar answered Nov 01 '22 14:11

rlemon


kind of.... style your ordered list with the font size you want for the numbers, then wrap all your list items in spans, and give them a different style.

http://jsfiddle.net/keith_nicholas/MEHXj/

like image 30
Keith Nicholas Avatar answered Nov 01 '22 15:11

Keith Nicholas