css3 transform描边问题 如图

图片描述

图片描述

图1是正常的描边,在手机上显示很粗,于是我用了transform: scale(0.5),变成图2的效果了,在PC上是好的,在手机上看线的上面和下面多了一点距离,在网上查了一下,别人说用overflow: hidden;,用了还是不行

.nav_left .nav_left_item:after {
    content: '';
    height: 1px;
    width: 200%;
    position: absolute;
    left: 0px;
    top: auto;
    right: auto;
    bottom: 0px;
    background-color: #e5e5e5;
    border: 0px solid transparent;
    border-radius: 0px;
    -webkit-border-radius: 0px;
    transform: scale(0.5);
    -webkit-transform: scale(0.5);
    -moz-transform: scale(0.5);
    -ms-transform: scale(0.5);
    -o-transform: scale(0.5);
    transform-origin: top left;
    -webkit-transform-origin: top left;
    -moz-transform-origin: top left;
    -ms-transform-origin: top left;
    -o-transform-origin: top left;
    overflow: hidden;
}

.nav_left_item.active  {
  color:#00b38a;
  background: #f2f2f2;
  position: relative;
}
.nav_left_item.active:before {
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    width: 2px;
    height: 100%;
    background: #00b38a;    
}
阅读 3.7k
5 个回答

要使用transform-origin设置基点位置。
因为你这样缩小可是他的实际占位海是1px
看图更清楚
clipboard.png

关于这个的话我有两个想法:
1、把描边使用图片来代替,这样兼容性还很好;
2、使用媒体查询,在手机上的时候把下面的每个盒子往上移动一点儿,刚好把那个白边给它盖住。

只有css代码不太好调试,而且感觉写法很奇怪。如果改成

height:1px->height:0.5px;/*不用scale*/
bottom:0px->bottom:0

效果有变化吗?

因为transform的属性不改变布局,占据的空间还是原来占据的空间那么大

手机上不用写那么多动画属性 只需要些 -webkit- 和 默认的 就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题