美文网首页
手机端实现0.5px实线

手机端实现0.5px实线

作者: AlisaMfz | 来源:发表于2017-04-05 14:24 被阅读125次

在手机端,如果有1px的实线就会显得非常粗,那我们能否实现0.5px的实线,来优化用户体验呢?

在frozenui里面有ui-border的写法,他们是用background-image的属性webkit-gradient来实现0.5px的实线,

.ui-border-t {

background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.5, transparent), color-stop(0.5, #ddd), to(#ddd));

}

.ui-border-b {

background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0.5, transparent), color-stop(0.5, #ddd), to(#ddd));

}

但是上面这种写法就会有一个问题,当一个元素有多个ui-border时,例如,<p class="ui-border-t ui-border-b ">边框</p>

或者<p class='ui-border-t radius50'></p>

在手机端看的时候就会有线出现不了,这种写法目前也不是很完善的

我们可以利用伪元素加transform的scale来试下。

.bd-t{

position:relative;

}

.bd-t:after{content: "  ";

position: absolute;

left: 0;

top: 0;

width: 100%;

height: 1px;

background-color: #e0e0e0;

-webkit-transform: scaleY(.5);

transform:scaleY(.5);

}

.bd-r{

position:relative;

}

.bd-r:after{

content: "  ";

position: absolute;

right: 0;

top: 0;

width: 1px;

height: 100%;

background-color: #e0e0e0;

-webkit-transform: scaleX(.5);

transform:scaleX(.5);

}

.bd-b{

position:relative;

}

.bd-b:after{

content: "  ";

position: absolute;

left: 0;

bottom: 0;

width: 100%;

height: 1px;

background-color: #e0e0e0;

-webkit-transform: scaleY(.5);

transform:scaleY(.5);

}

.bd-l{

position:relative;

}

.bd-l:after{

content: "  ";

position: absolute;

left: 0;

top: 0;

width: 1px;

height: 100%;

background-color: #e0e0e0;

-webkit-transform: scaleX(.5);

transform:scaleX(.5);

}

用上面的写法就可以实现了,但是如果是低版本的手机就有问题了,

大家都知道transform的兼容性

所以说,要实现0.5px的实线,还需要进一步的研究中,大家如果有好的方法,可以积极讨论,甘愿受教。

相关文章

网友评论

      本文标题:手机端实现0.5px实线

      本文链接:https://www.haomeiwen.com/subject/cyntattx.html