开发者

vertically centering a span with a background image

开发者 https://www.devze.com 2023-04-11 09:28 出处:网络
I have a un-ordered list of links, each of which contains some text and a span element. <li class=\"ui-state-default\"><a href=\"#pg-control\">Control<span class=\"ui-icon ui-icon-rig

I have a un-ordered list of links, each of which contains some text and a span element.

<li class="ui-state-default"><a href="#pg-control">Control<span class="ui-icon ui-icon-right_arrow"></span></a></li>

I would like the icon to appear vertically centered relative to the li (inline with the text)

vertically centering a span with a background image

Here is my css

li {
    line-height: 240%;
    display: block;
    border-bottom: 1px solid #666;
    padding: 5px;
}

li a {
    text-decoration: none;
    color: #000;
    display: block;
}

.ui-icon {
    width: 24px;
    height: 24px;
    float: right;
    display: inline-block;
}

Note I am not usi开发者_JAVA百科ng jQuery, I do realize my class names are the same. That is merely coincidence.


You could move the icon to be a background of the li, or:

Give the li relative positioning then give the icon absolute positioning. Position the icon 50% from the top, and then minus margin the top half of the icon's height. This will vertically center the icon.

li {
    position: relative;
    line-height: 240%;
    display: block;
    border-bottom: 1px solid #666;
    padding: 5px;
}

li a {
    text-decoration: none;
    color: #000;
    display: block;
}


.ui-icon {
    position: absolute;
    top: 50%;
    right: 10px;
    margin-top: -12px
    width: 24px;
    height: 24px;
    display: inline-block;
}


If it was me i'd make the arrow the background-image of the li something like:

li{
  background:transparent url(the_arrow.jpg) no-repeat center right;
}

I've coded an example...

0

精彩评论

暂无评论...
验证码 换一张
取 消