CSS3形状没有正确定位

时间:2014-05-04 07:17:01

标签: css3

我正在尝试在CSS3中创建自定义形状,但我在某些屏幕分辨率下遇到对象位置的问题。

我想做的是:

enter image description here

CSS:

.foobar {
    position: relative;
    width: 100px;
    background-color: #666733;
    color: #ffffff;
    border: none;
    padding: 5px 0;
    margin-left: 10px;
    margin-bottom: 5px;

}

.foobar:before {
    content: "";
    position: absolute;
    width: 110px;
    height: 22px;
    background: #666733;
    padding-left: 0;
    margin-left: -32px;
    -moz-border-radius: 100px / 50px;
    -webkit-border-radius: 100px / 50px;
    border-radius: 100px / 50px;
    z-index: -100;

}

我遇到的问题是foobar:before处于不同的屏幕分辨率下:

iPhone:

enter image description here

ipad公司:

enter image description here

桌面:

enter image description here

如何使用CSS正确编码形状,以便它适用于所有屏幕尺寸?我试图通过调整@media创建margin-left,但我很想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:2)

使用position: absolute;时,最好使用top, left, right and bottom位置属性。无论设备如何,您都可以保持一致性。查看DEMO并亲自尝试。

<强> HTML

<div class="foobar"></div>

<强> CSS

.foobar {
   position: relative;
   width: 150px;
   height: 50px;
   background: #666733;
}

.foobar:before {
    content: "";
    position: absolute;
    top: 13px;
    left: -15px;
    width: 180px;
    height: 24px;
    background: #666733; 
    border-radius: 15px;
}