日常开发CSS小技巧整理
日常开发CSS小技巧整理
1.解决inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移
.wrap {display: inline-block;overflow: hiddenvertical-align: bottom
}
2.超出部分显示省略号
// 单行文本
.wrap {overflow:hidden;/*超出部分隐藏*/text-overflow:ellipsis;/*超出部分显示省略号*/white-space:nowrap;/*规定段落中的文本不进行换行 */
}
// 多行文本
.wrap {width: 100%;overflow: hidden;display: -webkit-box; /*将对象作为弹性伸缩盒子模型显示 *必须结合的属性**/-webkit-box-orient: vertical; /*设置伸缩盒对象的子元素的排列方式 *必须结合的属性**/-webkit-line-clamp: 3; /*用来限制在一个块元素中显示的文本的行数*/word-break: break-all; /*让浏览器实现在任意位置的换行 *break-all为允许在单词内换行**/
}
3.css实现不换行、自动换行、强制换行
//不换行
.wrap {white-space:nowrap;}
//自动换行
.wrap {word-wrap: break-word;word-break: normal;
}
//强制换行
.wrap {word-break:break-all;}
4.CSS实现文本两端对齐
.wrap {text-align: justify; /*使文字换行没有错位现象*/text-justify: distribute-all-lines; /*ie6-8*/text-align-last: justify; /*一个块或行的最后一行对齐方式,不满一行间距会变大填充满*/-moz-text-align-last: justify;-webkit-text-align-last: justify;
}
5.实现文字竖向排版
// 单列展示时
.wrap {width: 25px;line-height: 18px;height: auto;font-size: 12px;padding: 8px 5px;word-wrap: break-word;/*英文的时候需要加上这句,自动换行*/
}
// 多列展示时
.wrap {height: 210px;line-height: 30px;text-align: justify;writing-mode: vertical-lr; /*从左向右*/ writing-mode: tb-lr; /*IE从左向右*///writing-mode: vertical-rl; /*-- 从右向左*///writing-mode: tb-rl; /*-- 从右向左*/
}
6.禁止用户选择
.wrap {-webkit-touch-callout: none;-webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;
}
7.使用硬件加速
有时候动画可能会导致用户的电脑卡顿,你可以在特定元素中使用硬件加速来避免这个问题
transform: translateZ(0);
translateZ变成3d效果,走GPU渲染;2d是软件渲染
8.将一个容器设为透明
.wrap { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5;
}
9.消除transition闪屏
.wrap {-webkit-transform-style: preserve-3d;-webkit-backface-visibility: hidden;-webkit-perspective: 1000;
}
10.自定义滚动条
overflow-y: scroll;
//整个滚动条
::-webkit-scrollbar {width: 5px;
}//滚动条的轨道
::-webkit-scrollbar-track {background-color: #ffa336;border-radius: 5px;
}//滚动条的滑块
::-webkit-scrollbar-thumb {background-color: #ffc076;border-radius: 5px;
}
11.让 HTML 识别 string 里的 ‘\n’ 并换行
body {white-space: pre-line;}
12.实现一个css图标
//三角形
.wrap { border-color: transparent transparent green transparent; border-style: solid; border-width: 0px 300px 300px 300px; height: 0px; width: 0px;
}
//梯形
.wrap { width: 25px;height: 25px;overflow: hidden;font-size: 0;line-height: 0;border-width: 50px;border-style: solid;border-color: transparent transparent rgb(46, 205, 245) transparent;}//实现箭头. arrow {position: absolute;}. arrow:before,. arrow:after{position: absolute;content: '';border-top: 10px transparent solid;border-left: 10px transparent solid;border-right: 10px transparent solid;border-bottom: 10px #fff solid;}. arrow:before{border-bottom: 10px #0099CC solid;}. arrow:after{top: 1px; /*覆盖并错开1px*/border-bottom: 10px #fff solid;}
13.使用CSS显示链接之后的URL
a:after{content:" (" attr(href) ") ";}
14.修改input输入框中光标的颜色不改变字体的颜色
input{color: #fff;caret-color: red;
}
15.修改input 输入框中 placeholder 默认字体样式
//webkit内核的浏览器 input::-webkit-input-placeholder {color: #c2c6ce;}//Firefox版本4-18 input:-moz-placeholder {color: #c2c6ce;}//Firefox版本19+input::-moz-placeholder {color: #c2c6ce;}//IE浏览器input:-ms-input-placeholder {color: #c2c6ce;}
16.子元素固定宽度 父元素宽度被撑开
// 父元素下的子元素是行内元素
.wrap {white-space: nowrap;
}
// 若父元素下的子元素是块级元素
.wrap {white-space: nowrap; /* 子元素不被换行*/display: inline-block;
}
17.实现宽高等比例自适应矩形
<style>.scale {width: 100%;padding-bottom: 56.25%;height: 0;position: relative; }.item {position: absolute; width: 100%;height: 100%;background-color: 499e56;} </style> <div class="scale"><div class="item">这里是所有子元素的容器</div></div>
18.transfrom的rotate属性在span标签下失效
span {display: inline-block}
19.边框字体同色
.wrap {width: 200px;height: 200px;color: #000;font-size: 30px;border: 50px solid currentColor;/*或者 border: 50px solid; // 实现二*/}
20.让一个盒子的高度自适应屏幕剩余的部分
要求:没有数据的时候能够充满屏幕,数据超出屏幕就出现滚动条
HTML结构暂且如下:
<div id="main"> <div id="nav">nav</div> <div id="content" class="container">content</div> </div> <style>html, body { height: 100%; }#nav{height:50px;}</style>
方法一:#main{height:100vh;} /*或者 #main{height:100%;} */ .container{height:calc(100vh-50px); /*或者 height:calc(100%-50px);*/overflow-y:auto;}方法二: #main{height:100%;} #nav{position:relative;z-index:1;background:#fff;}.container{min-height:100%;padding-top:50px;margin-top:-50px;overflow-y:auto;box-sizing:border-box;}方法三:#main{height:100%;display: flex;flex-direction: column;} .container{overflow-y:auto;flex-grow:1;}
21.Object Fit
指定可替换元素的内容应该如何适应到其使用的高度和宽度确定的框
可以通过使用 object-position 属性来切换被替换元素的内容对象在元素框内的对齐方式
正式语法
fill | contain | cover | none | scale-down
22.visibility: visible和visibility: hidden
把一个设置为visibility: visible的元素放在一个设置为visibility: hidden的元素里面,会发生什么?
你可能会认为两个元素都不显示——然而事实上整个父元素都被隐藏了,而子元素不会。
23.粘性定位之 position:sticky
position:sticky是css定位新增属性;可以说是相对定位relative和固定定位fixed的结合;它主要用在对scroll事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到sticky粘性定位的要求时(比如top:100px);position:sticky这时的效果相当于fixed定位,固定到适当位置。
使用:
#sticky-nav {
position: -webkit-sticky;
top: 100px;
}
使用条件:
1、父元素不能overflow:hidden或者overflow:visible属性。
2、必须指定top、bottom、left、right4个值之一,否则只会处于相对定位
3、父元素的高度不能低于sticky元素的高度
4、sticky元素仅在其父元素内生效
5、如果 position:sticky 元素的任意父节点定位设置为 position:relative | absolute | fixed,则元素相对父元素进行定位,而不会相对 viewprot 定位。
兼容性:
IOS 和 Firefox 支持 position:sticky 。
而 Chrome53~55 则需要启用实验性网络平台功能才行。其中 webkit 内核的要添加上私有前缀 -webkit-。
24.文字修饰
我们可以通过几行代码修改文字被选中时的效果:
```css<style>/*只有火狐下仍需要前缀*/::-moz-selection{background:#000;color:#f00;}::selection{background:#000;color:#f00;}</style> ```
25.混合模式之mix-blend-mode
属性描述了元素的内容应该与元素的直系父元素的内容和元素的背景如何混合
将其分为几个大类:
分类名称 | 混合模式名称 | 描述 |
基础混合模式 | normal | 利用图层透明度和不透明度来控制与下面的图层混合 |
降暗混合模式 | darken,multiply,color-burn | 减色模式,滤掉图像中高亮色,从而达到图像变暗 |
加亮混合模式 | screen,lighten,color-dodge | 加色模式,滤掉图像中暗色,从而达到图像变亮 |
融合混合模式 | overlay,soft-light,hard-light | 用于不同程度的对上、下两图层的融合 |
变异混合模式 | difference,exclusion,hard-light | 用于制作各种变异的图层混合 |
色彩叠加混合模式 | hue,saturation,color,luminosity | 根据图层的色相,饱和度等基本属性,完成图层融合 |
日常开发CSS小技巧整理相关推荐
- 做网页很实用代码集合和CSS制作网页小技巧整理
做网页很实用代码集合 控制横向和纵向滚动条的显隐?<body style="overflow-y:hidden"> 去掉x轴 <body style=" ...
- 12个你可能不知道的CSS小技巧
本文整理出12个开发中你有可能没有用到过的CSS小技巧,一起来看看吧~ 1. 自定义光标(cursor) 首先来看一下CSS的内置光标样式.平时开发中用到的基本上就是default.pointer.n ...
- css 自动换行_前端必备!20个CSS小技巧
在日常学习和工作中,你是否经常觉得时间不够用?为了帮助你提高效率,今天,就为大家分享一些CSS小技巧,如果你感觉有用,也可以收藏与分享给你的小伙伴们~ 1. 文字水平居中 将一段文字置于容器的水平中点 ...
- 5800日常操作使用小技巧
5800日常操作使用小技巧 2011年03月13日 S60机器的软件一般安装与删除方法 [1].为了顺利安装所有S60第三版机型适用的软件:在"工具"--"程序管理&qu ...
- delphi开发的小技巧----------------http://www.cto360.com/a/5000086716.shtml
delphi开发的小技巧----------------http://www.cto360.com/a/5000086716.shtml http://www.cto360.com/a/5000086 ...
- Tensorflow小技巧整理:修改张量特定元素的值
Tensorflow小技巧整理:修改张量特定元素的值 最近在做一个摘要生成的项目,过程中遇到了很多小问题,从网上查阅了许多别人解决不同问题的方法,自己也在旁边开了个jupyter notebook搞些 ...
- css文字换行时对不齐,css小技巧 - 换行对齐
假如需要你实现换行对齐,你可能会想到ul标签和li标签自带这种功能 确实在使用li标签自带的项目符号的时候可以直接使用,但是有时可能会有不一致时 就需要我们动手写两行代码来实现一下,比如这种效果: 项 ...
- 10 个不错的 CSS 小技巧
本文为译文,采用意译. CSS 大约有两百个属性.很多属性都是相互关联的,理清楚每一个属性细节是不可能的.所以,本文分享一些有用的 CSS 小技巧,方便开发者和设计师参考. 1. 打字效果 Typin ...
- 转 CSS兼容技巧整理--从IE6-IE9 火狐谷歌浏览器兼容
本文收集整理了IE7,6与Fireofx的CSS兼容性处理技巧,供大家参考. CSS兼容常用技巧 请尽量用xhtml格式写代码,而且DOCTYPE影响 CSS 处理,作为W3C标准,一定要加DOCTY ...
最新文章
- 企业如何利用新闻类软文营销策划
- Android MIPI转LVDS显示屏调试之--- SD65DSI84概述(2)
- OpenFOAM流固耦合问题-FsiFoam(foam-extend-4.0)运行tutorials的bug修复
- JavaScript 开发的45个经典技巧
- 计算机语言无限循环,求大神帮我看看为什么我的子程序无限循环无法使用F8停止...
- idea 报错 java: 无效的源发行版: 11
- 设计模式---观察者模式(C++)
- webpack-开发服务器-配置
- 基于词典的情感分析实验
- Java 框架、库和软件的精选列表(Awesome Java)
- 2022年通信工程专业保研:从四非到浙大工院夏令营面试经验分享(前期准备篇/含通信原理面试真题)
- 股票交易接口dll代码分享
- html涟漪动画效果,CSS+JS实现水滴涟漪动画按钮效果的示例代码
- svn: E175003:The server at ‘https://XXX/!/#XXX/XXX‘ does not support the HTTP/DAV protocol解决方案
- teradata是MySQL吗_Teradata 数据库介绍
- 通过VBA宏合并Excel工作表
- A Game of Thrones(39)
- 乱弹琴20140421
- 计算机应用 审稿2个月,我的《计算机应用》投稿经历
- 有Go语言实战培训班吗?go语言开发环境搭建
热门文章
- linux无法显示输入法图标,linux mint12安装ibus之后,语言栏不跟随光标和系统托盘输入法图标不能显示问题解决...
- 计算机单元格数值不保留小数,EXCEL单元格数值实现真正保留2位小数的方法
- Illustrator “图像裁切”功能如何使用?
- client Sdk
- python-列表元素绝对值排序
- PX4模块设计之三十五:MulticopterAttitudeControl模块
- ajax里数组添加数据,小笔记(一):ajax传递数组及将ajax返回数据赋值
- Go string类型及其使用
- python中seaborn是什么_Python数据分析之seaborn常用方法
- 苹果xr怎么截屏_苹果怎么截图?教你各种iPhone机型截屏方法