何为技巧,意指表如今文学、工艺、体育等方面的巧妙技能。代码做为一门现代高级工艺,推进着人类科学技术的发展,同时犹如文字同样承托着人类文化的进步。css
每写好一篇文章,都会使用大量的写做技巧。烘托、渲染、悬念、铺垫、照应、伏笔、联想、想象、抑扬结合、点面结合、动静结合、叙议结合、情景交融、首尾呼应、陪衬对比、白描细描、比喻象征、借古讽今、卒章显志、承上启下、开门见山、动静相衬、虚实相生、实写虚写、托物寓意、咏物抒情
等,这些应该都是咱们从小到大写文章而接触到的写做技巧。html
做为程序猿的咱们,写代码一样也须要大量的写做技巧。一份良好的代码能让人耳目一新,让人容易理解,让人舒服天然,同时也让本身成就感满满(哈哈,这个才是重点)。所以,我整理下三年来本身使用到的一些CSS开发技巧,但愿能让你写出耳目一新、容易理解、舒服天然的代码。前端
既然写文章有这么多的写做技巧,那么我也须要对CSS开发技巧整理一下,起个易记的名字。git
备注github
CodePen
进行保存,点击在线演示便可查看/* 基于UI width=750px DPR=2的页面 */
html {
font-size: calc(100vw / 7.5);
}
复制代码
:nth-child()
筛选指定的元素设置样式writing-mode
调整文本排版方向text-align-last:justify
设置文本两端对齐object-fit
使图像脱离background-size
的约束,使用<img>
来标记图像背景尺寸flexbox
或inline-block
的形式横向排列元素,对父元素设置overflow-x:auto
横向滚动查看text-overflow:ellipsis
对溢出的文本在末端添加...
letter-spacing
设置负值字体间距将文本倒序非body元素
的滚动操做会很是卡(Android不会出现此状况),经过overflow-scrolling:touch
调用Safari原生滚动来支持弹性滚动,增长页面滚动的流畅度-webkit-overflow-scrolling
body {
-webkit-overflow-scrolling: touch;
}
.elem {
overflow: auto;
}
复制代码
.elem {
transform: translate3d(0, 0, 0); /* translateZ(0)亦可 */
}
复制代码
pointer-events:none
禁用事件触发(默认事件、冒泡事件、鼠标事件、键盘事件等),至关于<button>
的disabled
focus
和blur
事件后往父元素进行冒泡,在父元素上经过:focus-within
捕获该冒泡事件来设置样式max-height
定义收起的最小高度和展开的最大高度,设置二者间的过渡切换background-attachment:fixed
或transform
让多层背景以不一样的速度移动,造成立体的运动效果transform-delay
或animation-delay
设置负值时延保留动画起始帧,让动画进入页面不用等待便可运行border
没有定义border-color
时,设置color
后,border-color
会被定义成color
.elem {
border: 1px solid;
color: #f66;
}
复制代码
::selection
根据主题颜色自定义文本选择颜色linear-gradient
设置背景渐变色,配合background-clip:text
对背景进行文本裁剪,添加滤镜动画caret-color
根据主题颜色自定义光标颜色scrollbar
的scrollbar-track
和scrollbar-thumb
等属性来自定义滚动条样式mask
为图像背景生成蒙层提供遮罩效果box-shadow
生成投影,且模糊半径和负的扩张半径一致,使投影偏向一侧box-shadow
模拟蒙层实现中间镂空写到最后总结得差很少了,后续若是我想起还有哪些CSS开发技巧遗漏的,会继续在这篇文章上补全,同时也但愿各位朋友对文章里的要点进行补充或者提出本身的看法。欢迎在下方进行评论或补充喔,喜欢的点个赞或收个藏,保证你在开发时用得上。web
最后送你们一个键盘!segmentfault
(_=>[..."`1234567890-=~~QWERTYUIOP[]\\~ASDFGHJKL;'~~ZXCVBNM,./~"].map(x=>(o+=`/${b='_'.repeat(w=x<y?2:' 667699'[x=["Bs","Tab","Caps","Enter"][p++]||'Shift',p])}\\|`,m+=y+(x+' ').slice(0,w)+y+y,n+=y+b+y+y,l+=' __'+b)[73]&&(k.push(l,m,n,o),l='',m=n=o=y),m=n=o=y='|',p=l=k=[])&&k.join` `)()
复制代码
原文:请戳这里
做者:JowayYoung
仓库:Github
博客:掘金、思否、知乎
公众号:Uzero
联系我:关注公众号后有个人微信哟浏览器
《灵活运用》系列性能优化
《依赖汇总》系列微信
《必备工具》系列
《随笔》系列
关注公众号Uzero
,更多前端小干货等着你喔!我是JowayYoung
,喜欢分享前端技术和生活纪事,学习与生活不落下,天天进步一点点,与你们相伴成长