css属性选择器在iphone上的问题

html-css09

css属性选择器在iphone上的问题,第1张

你写的下面的那个css选择器中间没有加空格,代表的是同时拥有class为ucenter-left和class为ucenter-l-header的元素,举例:

<div class="ucenter-left ucenter-l-header"></div>

新建一个页面,如下图。

把checkbox藏起来,切换按钮主要用label实现。给label加上适当的css属性

给label加上before和after伪类。before作为下面的横槽,after作为切换的圆按钮

先给label加上定位的css

#chk-toggle + label:before,

#chk-toggle + label:after {

  display: block

  position: absolute

  top: 1px

  left: 1px

  bottom: 1px

  content: ""

}

如果不写bottom,那before和after还需要分别写高度

加上原型按钮

#chk-toggle + label:after {

  width: 58px

  background-color: #fff

  border-radius: 100%

  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3)

  transition: margin 0.4s

}

加底

#chk-toggle + label:before {

  right: 1px

  background-color: #f1f1f1

  border-radius: 60px

  transition: background 0.4s

}

注意,after和before中的transition都是为了之后的切换动作用的

现在只差最后的checked了

#chk-toggle:checked + label:before {

  background-color: #8ce196

}

#chk-toggle:checked + label:after {

  margin-left: 60px

}

在console中可以看到切换时,checkbox的状态

Bug调试

1:doctype没声明,带来的IE浏览器盒模型解析bug

解决: 进行xhtml 正确声明,如strict声明

2:浏览器的初始值不同带来的.

解决:进行css初始化.

3:自身代码不规范带来的bug,

解决:面壁

4:浏览器的bug带来的.

4.1 IE6, 有双倍margin bug

是指:浮动方向上的margin值会加倍.

例如: 某元素 float:leftmargin-left的值是10px, 那么页面上会解析为20px

同时 ,float:right, margin-right也会加倍

解决方案: 设置漂浮元素的_display:inline

4.2: 3像素bug,

解决:规范float的用法

4.3: IE关于a标签的4个伪类的兼容bug

答:对于IE, 如果a:link方式声明了标签的样式

可能会引来 visited伪类的解析异常

解决: 去掉a:link,以 a 来代替