zoukankan      html  css  js  c++  java
  • CSS小箭头的方法及原理

    今天注意到人和网的首页幻灯片上的一个小细节,就是下图上的这个小箭头。最初我以为是用一张小图片实现的。用firbug查看发现竟然不是,顿时激起了我的好奇心。

    它的代码是这样的:

    于是,我自己做了个测试:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>小箭头</title>
    <style>
    body{
        margin:0;
        padding:0;
    }
    .arrow{
        display:inline-block;
        border:8px solid;
        border-color:#fff #fff #f00 #fff;
    }
    </style>
    </head>
    <body>
        <div class="arrow"></div>
    </body>
    </html>

    成功实现。具体原理要从box盒状模型说起了,box盒装模型的宽度L = width + padding + border + margin,即总宽度=上外边距+上边宽+上内边距+宽度+下内边距+下变宽+下外边距。

    在这里我们没有定义内边距和外边距,只定义了宽为8px的变宽,上边宽8px+下变宽8px=总宽度16px。当我们把左变宽、上变宽、右边宽的颜色设为白色,下变宽设为红色的时候,就显示出如上图的效果了。

    Ps:必须给它写上display:inline-block或者display:inline,因为div的性质是块,它会自己占据一行。除非脱离文档流,使其没有一行的概念(人和网是用了绝对路径脱离了文档流,用浮动float同样可以实现)。
    否则效果会跟下图一样:

    IE6/7对支持display:inline-block和display:inline不友好,建议通过脱离文档流的方法解决块元素占一行的问题。附“IE6/7下不同的inline-block“。

    Demo下载:http://pan.baidu.com/share/link?shareid=88273&uk=3221702211

  • 相关阅读:
    善待自己的恻隐之心
    FormLayout and FormData
    jquery获取元素索引值index()方法
    Kohana 之ORM文档篇
    css 圆角相框
    Kohana 之 request
    firefox通过XUL实现textoverflow:ellipsis的效果
    jquery 插件开发备注
    Kohana 之ORM实际使用篇
    PHP扩展编写与编译
  • 原文地址:https://www.cnblogs.com/xjchenhao/p/4014165.html
Copyright © 2011-2022 走看看