
或者,你已经进修了一些关于 应用 :not(),你还可以测验测验:
/* 选择1到3的元素并显示 */li:not(:nth-child(-n+3)){ display: none;}9、移动web页面支撑弹性滚动
需求
在IOS机型中,非body元素的滚动条会异常不流畅,又不想用JS模仿滚动条。
传统 pc 读闼楝子容器高度超出父容器高度,平日应用 overflow:auto 可出现滚动条拖动显示溢出的内容,而移动 web 开辟中,因为浏览器厂商的体系不合、版本不合,导致有部分机型尤其是 IOS 机型不支撑弹性滚动,大年夜而在开辟中制造了所谓的 BUG 。
代码
这里不商量 rem 的道理以及细节,还不熟悉的童鞋建议去恶补一下。
需求
有时刻,移动端用 rem 构造时刻,根据不合的屏幕宽度要设置不合的 font-size 来做到适配,要写一坨 JS 来设置,能不克不及不消JS呢?
body{-webkit-overflow-scrolling: touch; /* ios5+ */}ele{overflow:auto;}<div class="container"> <div class="row" style="margin-top: 2rem;"> <form> <div class="form-group"> <label>name</label> <input type="text" required placeholder="请输入名称"> </div> <div class="form-group"> <label>email</label> <input type="email" required placeholder="请输入邮箱"> </div> <div class="form-group"> <label>homepage</label> <input type="url" placeholder="请输入博客url"> </div> <div class="form-group"> <label>Comments</label> <textarea required></textarea> </div> </form> </div> </div>
-webkit-overflow-scrolling 属性具有持续效不雅,所以在 body 上设置即可,如许局部滚动条就异常的流畅了。
最终效不雅
所有滚动条都相当的流畅了
10、美化浏览器自带的 radio , checkbox 属性
需求
设计师:你那个单选框按钮好丑啊,跟我的设计稿差好远。法度榜样员:我有什么办法,浏览器就是如许的。。。
记得刚开端写页面时刻,被浏览器各类默认的 UI 样式恶心到了,当初确切也没啥办法,反正也不影响功能,就那样吧。
先讲一下道理:checkbox hack技巧
我们应用 CSS 一些特别的选择器,然后合营单选框以及复选框自带的一些特点,可以实现元素的显示隐蔽效不雅。然后经由过程一些简单的扩大,我们可以不应用任何 JavaScript 代码实现类似:自定义的单复选框,“更多”展开与收起效不雅,选项卡切换效不雅,或是多级下拉列表效不雅等等。
信赖很多前端开辟人员都邑碰到 boss 让修改 checkbox 和 radio 样式,毕竟自带的样式太丑了。后来我们发明修改自带样式并不是那么轻易,最后直接使出杀手锏——点击之后调换图片。
今天教大年夜家一种办法,不消调换图片,随便修改样式。
先讲一下道理:两个关键东东,一是伪类选择器 :checked ,表示对应控件元素(单选框或是复选框)选中时的样式;二就是加号 + 相邻兄弟选择器,这个符号表示选择后面的兄弟节点。于是,两者合营,就可以轻松自如控制后面元素的显示或者隐蔽,或是其他样式了。
更多细节与评论辩论请移步张鑫旭师长教师的┞封篇文┞仿: 改变CSS世界纵横规矩的writing-mode属性
5、实现鼠标悬浮内容主动撑开的过渡动画
需求
须要为一个列表添加个动画,容器的高度是不肯定的,也就是高度为 auto ,悬浮时刻撑开内容有个过渡动画
<div class="radio-beauty-container"> <label> <span class="radio-name">前端工程师</span> <input type="radio" name="radioName" id="radioName1" hidden/> <label for="radioName1" class="radio-beauty"></label> </label> <label> <span class="radio-name">后端工程师</span> <input type="radio" name="radioName" id="radioName2" hidden/> <label for="radioName2" class="radio-beauty"></label> </label> <label> <span class="radio-name">全栈工程师</span> <input type="radio" name="radioName" id="radioName3" hidden/> <label for="radioName3" class="radio-beauty"></label> </label></div>
.radio-beauty-container { font-size: 0; $bgc: green; %common { padding: 2px; background-color: $bgc; background-clip: content-box; } .radio-name { vertical-align: middle; font-size: 16px; } .radio-beauty { width: 18px; height: 18px; box-sizing: border-box; display: inline-block; border: 1px solid $bgc; vertical-align: middle; margin: 0 15px 0 3px; border-radius: 50%; &:hover { box-shadow: 0 0 7px $bgc; @extend %common; } } input[type="radio"]:checked+.radio-beauty { @extend %common; }}
推荐阅读
近日,国外研究机构Internet Society宣布了题为《Paths to Our Digital Future(2017)》(中文译为:通往数字将来之路)的申报,阐述了后互联网时代的变革驱动力,这里对变革驱动力之一人>>>详细阅读
本文标题:CSS 黑魔法小技巧,让你少写不必要的JS,代码更优雅
地址:http://www.17bianji.com/lsqh/37641.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示