文章目录
css 在开发中的填坑总结
利用 css 的 content 属性 attr 抓取资料
想要获取伪元素,可以用以下写法:
1 | <div data-msg="open"></div> |
利用:valid 和:invalid 来做表单即使校验
- :required 伪类指定具有 required 属性的表单元素
- :valid 伪类指定一个通过匹配正确的所要求的表单元素
- :invalid 伪类指定一个不匹配指定要求的表单元素
writing-mode
使用 writing-mode 这个 CSS 属性实现容器的文字从上往下排列。 writing-mode: vertical-rl;
实现鼠标悬浮内容自动撑开的过渡动画
需要为一个列表添加个动画,容器的高度是不确定的,也就是高度为 auto,悬浮时候撑开内容有个过渡动画。而用 CSS3 实现的话,由于高度的不确定,而 transtion 是需要具体的数值,所以设置 height:auto 是无法实现效果的,可以通过 max-height 这个属性间接的实现这么个效果,css 样式是这样的:
1 | <ul> |
移动端 web 页面支持弹性滚动
-webkit-overflow-scrolling: touch;
美化浏览器自带的 radio ,checkbox 属性
1 | <div class="radio-beauty-container"> |
改变 input 焦点光标的颜色
1 | <input value="This field uses a default caret." /> |
rem 布局不再使用 JavaScript 设置
现在移动端 css3 单位 vw ,wh 兼容性已经很不错了,在不需要兼容太低版本的安卓机情况下可以这样来:
1 | html { |
切角效果实现
切角效果是时下非常流行的一种设计风格,并广泛运用于平面设计中,它最常见的形态就是把元素的一个或多个切成 45° 的切口,尤其是在最近几年,扁平化设计盖过拟物化设计后,这种切脚设计更为流行,例如下图就是通过切角实现的一个导航栏,在后面将详细论述起实现。
响应式页面开发
在页头head
标签内添加viewoport meta
是实现响应式页面的第一步。
1 | <meta name="viewport" content="width=device-width, initial-scale=1" /> |
使用Media Queries
使用 link 标签 ,根据指定特性引入特定的外部样式文件
1
<link rel="stylesheet" media="(max-width:640px)" href="max-640px.css" />
直接在 style 标签或样式文件内使用
@media
规则
样式断点
- moblie 移动设备断点 ,视窗宽度<=768px
- tablet 平板电脑设备断点,视窗宽度>=769px
- desktop 桌面电脑断点,视窗宽度>=1024px
- widescreen 宽屏电脑断点,视窗宽度>=1216px
- fullhd 高清宽屏电脑断点,视窗宽度>=1408px
1px 细线(普通屏幕下 1px,高清屏下 0.5px 的情况)
1 | .mod_grid { |
需要保持宽高比的图,应该用 padding-top 实现
1 | .mod_banner { |
input type=file onchange
- 上传同一张图片失效
- 在微信浏览器内无法上传图片 (经测试是不支持
input type=file
就算支持也无法上传 camera 目录下的文件 )
1 | $fileInput.on('change', function (e) { |
第二个问题实在没有找到方法 准备使用带有 flash 的插件
使用百度网盘,饿了么的网页在微信中有同样的问题
meta viewport
1 | H5标准声明,使用 HTML5 doctype,不区分大小写 |
字少时居中,多时靠左
1 | <div class="box"> |
CSS 权重
权重分为 4 级,分别是:
- 内联样式:1000
- id:100
- 类,伪类和属性选择器
:hover
,[attributer]
,权值为 10 - 代表元素选择器和伪元素选择器,
div
** 需要注意的是:通用选择器(*),子选择器(>)和相邻通报选择器并不在这四个等级中,所以他们的权值为 0**
CSS3 动画
animation-name
:对应的动画名称animation-duration
:是动画时长animation-timing-function
:规定动画的速度曲线。默认是 easeanimation-delay
:规定动画何时开始。默认是 0animation-iteration-count
:规定动画播放的次数。默认是 1animation-diraction
:规定动画是否在下一周期逆向地播放。默认是 normalanimation-play-state
:规定动画是否正在运行或暂停。默认是 runninganimation-fill-mode
:规定动画执行之前和之后如何给动画的目标应用,默认是 none,保留在最后一帧可以用 forwords
实现动画暂停
使用animation-play-state
可以实现动画暂停
1 | .play-state { |
重绘和回流
- 重绘:指的是当前页面中的元素不脱离文档流。而简单的样式的变化,比如修改颜色,背景等,浏览器重新绘制样式
- 回流:指的是处于文档流中 DOM 的尺寸大小,位置或者默写属性变化时,导致浏览器重新渲染部分或全部文档的情况
首行缩进
1 | text-indent: 2em; |
一种奇妙的绝对居中办法
1 | <style> |