您的位置:首页 > Web前端 > CSS

尝试在ie8上实现纯css的圆角

2014-11-25 00:05 197 查看

纯css实现在ie8下的圆角

本文可以说几乎没有什么意义,是突然来的一个ie8下圆角矩形的纯css实现思路,我只在chrome下实现了,但是和系统字体有很大的关联,导致各种问题,有兴趣的可以看看:

大致流程图如下(忽略图片中间的水印):

(1)创建一个矩形,我创建的是带有左右边框的矩形,大致如下:



(2)在矩形的四个角,如下图的位置加上四个圆,当然,圆也是黑色的,但是有人可能要问,ie8连圆角都没有,哪来的圆,这里就是关键所在,用英文字符中的句号来制作圆,当然,需要超大的字体。调整好位置后效果如下:



(3)再来个如下图所示的矩形,颜色也要是黑色的,那么圆角矩形就做完了



上述过程看起来貌似简单,但是问题还是挺多的,最大的问题是不同浏览器的英文句号位置大小都是不一样的,即使字体以及字体大小一样的情况下也是如此

直接上我的源码(以下的各个参数是我在我的ubuntu下的chrome里调的,其他机器,其他系统,其他浏览器得重新调整,希望有人可以整理出统一的方案):

<div class="radius">
asdasdasddddddddddddddddddddddddddddddddddsaaadasdasd
</div>

*{
  margin: 0;
  padding:0;
  font-family: Georgia, serif;
}
body{
  padding: 10px;
}
.radius{
position: relative;
width: 11em;
height: 10em;
margin: 2em 0;
background-color: #000;
color:#fff;
border-width: 0 1.99em;
border-style: solid;
border-color: #000;
word-wrap: break-word;
}
.radius:after{
content: '';
position: absolute;
top: -1.96em;
left: 0;
display: block;
width: 11em;
height: 10em;
color: #fff;
border-width: 1.99em 0;
border-style: solid;
border-color: #000;
}
.radius:before{
content: "....";
position: absolute;
top: -0.447em;
left: -0.126em;
z-index: -1;
display: block;
width: 0.7em;
height: 0.3125em;
font-size: 3200%;
line-height: 0.3125em;
letter-spacing: 0.096em;
color: #000;
word-wrap: break-word;
}


最后在我的chrome里显示如下:



很nice的效果,读者可以读一下源码,然后在自己的浏览器上调整各个参数,也会获得这样的效果。

注意,虽然是chrome下面实现的,但是css代码用的全是ie8所支持的,如果不用伪类(after和before),那么,还可以支持ie7,甚至ie6,只要字体里有圆点的符号就行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ie8 css 浏览器 编程 html