一些css知识
两个“::”和一个“:”在css3中主要用来区分伪类和伪元素。
1、设置 placeholder属性:
// firefox
input::-moz-placeholder {
color: red;
font-size: 18px;
}
// IE
input:-ms-input-placeholder {
color: red;
font-size: 18px;
}
// chrome
input::-webkit-input-placeholder {
color: red;
font-size: 18px;
}
- 都要加上各自浏览器的前缀(如
-webkit-
); - firefox的
placeholder
的前面没有input-
; - firefox与chrome都是
::
两个冒号,而IE则是一个:
; - 低版本的浏览器与新版本浏览器可能写法不同;
2、select
标签去掉小三角的css (IE中待发掘):
// chorme
-webkit-appearance: none;
// firefox
-moz-appearance: none;
3、去除input[type=number]右边的spinners(移动端)
input[type=number]
通常用在移动端设备上,浏览器会识别number输入类型,然后改变数字键盘来适应它。但是它会出现spinners,一般不需要它。去掉spinners的css如下:
// firefox
input[type='number'] {
-moz-appearance:textfield;
} // chrome
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin:;
}
4、去除点击 a链接或者通过Javascript定义的可点击元素的蓝色边框(移动端), 将其设置为透明
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
5、webkit中去掉滚动条的宽度
webkit现在支持拥有overflow属性的区域,列表框,下拉菜单,textarea的滚动条自定义样式
::-webkit-scrollbar {
width:;
}
同样的,还可以改变滚动条的样式,参考:http://www.xuanfengge.com/css3-webkit-scrollbar.html
6、使用 :not() 比如去掉一排div中最右边div的右边框
.nav li:not(:last-child) {
border-right: 1px solid #666;
}
而不用通过两次来控制
.nav li {
border-right: 1px solid #666;
}
.nav li:last-child {
border-right: none;
}
7、 继承 box-sizing,让 box-sizing 继承 html:
html {
box-sizing: border-box;
} *, *:before, *:after {
box-sizing: inherit;
}
8、禁用鼠标事件,设置了以后就不能用鼠标点击了
pointer-events: none;
9、用calc()和百分比 给元素设置动态的值:
/* 案例1 */
.simpleBlock {
width: calc(100% - 100px);
} /* 案例2 */
.complexBlock {
width: calc(100% - 50% / 3);
padding: 5px calc(3% - 2px);
margin-left: calc(10% + 10px);
}
10、用flex的时候,想要保证间隔相同,又要使两边贴边,那么试试 justify-content: space-between
.list {
display: flex;
justify-content: space-between;
}
11、当a标签无内部文本,却又想显示其超链接 href 属性
a[href^="http"]:empty::before {
content: attr(href);
}
12、隐藏元素的5中方法:
Opacity:设置一个元素透明度为0。它不改变元素的边界框,意味着将 opacity为 0 只能从视觉上隐藏元素。而元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互。
.hide {
opacity:;
}
Visibility:将它的值设为 hidden
。如同 opacity
属性,被隐藏的元素依然会对我们的网页布局起作用。与 opacity
唯一不同的是它不会响应任何用户交互。
.hide {
visibility: hidden;
}
如果一个元素的 visibility
被设置为 hidden
,同时想要显示它的某个子孙元素,只要将那个元素的 visibility
显式设置为 visible
即可,同时也可以设置平滑的过渡动画。
Display:将 display
属性设为 none
确保元素不可见并且连盒模型也不生成。被隐藏的元素不占据任何空间,该元素直接打用户交互操作都不可能生效。
.hide {
display: none;
}
请注意,1、通过 DOM 依然可以访问到这个元素。因此你可以通过 DOM 来操作它,就像操作其他的元素
2、任何这个元素的子孙元素也会被同时隐藏。为这个属性添加过渡动画是无效的,它的任何不同状态值之间的切换总是会立即生效
Position:设置很大的值,position不影响布局且可以直接交互(opacity 和 visibility 影响布局, display 不影响布局但又无法直接交互)。
.hide {
position: absolute;
top: -9999px;
left: -9999px;
}
Clip-path:隐藏元素的另一种方法是通过剪裁它们来实现,元素自身不再显示,它也依然占据本该占据的大小 参考:http://codepen.io/SitePoint/pen/YWXgdW/
.hide {
clip-path: polygon(0px 0px,0px 0px,0px 0px,0px 0px);
}
13、清除浮动:(由于浮动带来了高度塌陷,当浮动框高度超出包含框的时候,也就会出现包含框不会自动伸高来闭合浮动元素(“高度塌陷”现象))
1) display:block 使生成的元素以块级元素显示,占满剩余空间;
2) height:0 避免生成内容破坏原有布局的高度。
3) visibility:hidden 使生成的内容不可见,并允许可能被生成内容盖住的内容可以进行点击和交互;
4)通过 content:"."生成内容作为最后一个元素,至于content里面是点还是其他都是可以的,例如oocss里面就有经典的content:"XXXXXXXXX",有些版本可能content 里面内容为空,一丝冰凉是不推荐这样做的,firefox直到7.0 content:”" 仍然会产生额外的空隙;
5)zoom:1 触发IE hasLayout。
通过分析发现,除了clear:both用来闭合浮动的,其他代码无非都是为了隐藏掉content生成的内容,这也就是其他版本的闭合浮动为什么会有font-size:0,line-height:0。
.clearfix:after { content: "."; display: block; clear: both; visibility: hidden; height:; }
.clearfix {*zoom:1;}
.clearfix:after {content:"\200B"; display:block; height:; clear:both; }
.clearfix { *zoom:; }.
新版清除浮动
.clearfix:before, .clearfix:after { content: ""; display: table; }
.clearfix:after { clear: both; }
.clearfix:after { *zoom:; } /* For IE 6/7 (trigger hasLayout) */
14、在可点击的项目上 手型
a[href], input[type='submit'], input[type='image'], label[for], select, button, .pointer {
cursor: pointer;
}
15、位置宽高的水平和竖直居中
/*display:table-cell配合text-align:center和vertical-align:middle*/
.container{
width: 600px;
height: 600px;
background: #eee;
display: table-cell;
text-align: center;
vertical-align: middle;
}
.center{
background: blue;
}
/*transform*/
.container{
width: 100%;
height: 400px;
background: #eee;
position: relative;
}
.center{
background: blue;
position:absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
/*flex+justify-content: center;+ align-items: center;*/
.container{
width: 100%;
height: 400px;
background: #eee;
/* flex 布局解决水平居中 */
display: flex;
justify-content: center;
align-items: center;
}
一些css知识的更多相关文章
- CSS知识回顾--读《CSS 那些事儿》笔记
由于之前有了解过CSS的相关知识,有了一定的基础,所以读起<CSS 那些事儿>不是很有难度,况且我现在读起来时,CSS3和HTML5比较流行,这里只是记录一些CSS知识记录,不做详细铺开, ...
- 你该学点HTML/CSS知识的9大理由
每个人都应该学写代码——这一观点简直就是铺天盖地地映入我们眼帘.或许你会莫名其妙,程序员学代码那是理所应当,但是作为一个作家.营销人员.财务工作者甚至是工人,为什么也需要学习代码呢? 好吧,下面我会告 ...
- WEBBASE篇: 第五篇, CSS知识3
CSS知识3 框模型: 一,外边距(上文) 二, 内边距 1,什么是内边距? 内边距就是内容与元素边缘之间的距离: 注: 内边距会扩大元素边框内所占的区域的 语法: padding: 四个方向的 ...
- WEBBASE篇: 第四篇, CSS知识2
CSS知识2 一, 尺寸 与 边框 CSS单位 1,尺寸单位:(1)px 像素 (2)% (3) in 英寸 lin = 2.54cm (4)pt 磅 1pt = 1/72in ppi ...
- WEBBASE篇: 第三篇, CSS知识1
第三篇, CSS知识1 一,CSS 介绍 CSS: Cascading Style Sheets ---样式表 HTML: 搭建网页结构: CSS: 在网页结构基础上进行网页的美化: 二,CSS的使用 ...
- 《HTML与CSS知识》系列分享专栏
收藏HTML和CSS方面的技术文章,作为一个WEB开发者,必须要知道HTML和CSS方面的知识,即使作为后台开发者也应该知道一些常用的HTML和CSS知识,甚至架构师也要了解,这样才会开发出实用的网站 ...
- Web前端基础怎么学? JavaScript、html、css知识架构图
以前开发者只要掌握 HTML.CSS.JavaScript 三驾马车就能胜任一份前端的工作了.而现在除了普通的编码以外,还要考虑如何性能优化,如何跨端.跨平台实现功能,尤其是 AI.5G 技术的来临, ...
- css知识总结
---# 学习目标:> 1. 学会使用CSS选择器> 2. 熟记CSS样式和外观属性> 3. 熟练掌握CSS各种选择器> 4. 熟练掌握CSS各种选择器> 5. 熟练掌握 ...
- 我收藏的技术知识图(每张都是大图)关于XX背后的知识、技术图,例如:Linux、Nginx架构、PHP知识卡、机会、HTML5移动、Android系统架构、YII架构的典型流程、Css知识表
我收藏的技术知识图(每张都是大图) HTML5Linux/Unix系统设计思想读书笔记 LinuxMVCJava线程MVCSpring MVCCSS3Nginx架构VimCliCommandsPHP知 ...
- 网页制作常用的CSS知识
在制作网页中,我们会用到很多CSS的知识,在这里我简单的总结了一些. div 划分区块 ul,li 无序列表(配合划分区块) ol,li 有序列表 a 超链接标签 p 段落标签 h 标题标签 i ...
随机推荐
- C++中 OOP相关的类型转换
我们都知道,在C++中有很多类型转换.今天在这里,我们不讨论普通变量的类型转换(比如int转换成double等等).本文主要讨论面向对象相关的类型转换:向上转换和向下转换. 首先,我们定义一个基类Ba ...
- PHP之图片上传类(加了缩略图)
有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下 <form action="<?php $_SERVER['PHP_SELF']; ?>" ...
- Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...
- Redhat、CentOS添加静态路由的标准方法
我们经常遇到需要在系统默认路由的基础上,额外添加静态路由的需求.为了使得下次系统启动这些静态路由依旧生效,我们可能采取在rc.loal里加入route命令追加静态路由的方法. 现在给大家推荐Redha ...
- sql存储过程比sql语句执行慢很多
参数嗅探的问题 原因:(1)可能是发生了参数嗅探,第一次赋给存储过程的输入参数,会为该存储过程生成一个基于输入参数的执行计划,因此如果第一次输入的参数不具有代表性(例如大部分查询输入的参数都是A值,但 ...
- MyBatis调用Oracle存储过程
MyBatis调用Oracle存储过程 1.无输入和输出参数的存储过程 2.带有输入和输出参数的存储过程 3.返回游标的存储过程 mybatis中的配置文件代码 <resultMap type= ...
- boldSystemFontOfSize 和 systemFontOfSize 的区别
使用 UIFont 的下列方法: + systemFontOfSize + boldSystemFontOfSize + italicSystemFontOfSize p.p1 { margin: 0 ...
- 景区3D指纹验证系统解决方案
旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一.旅游业在城市经济发展中的产业地位.经济作用逐步增强,旅游业对城市经济的拉动性.社会就业的带动力.以及对文化与环境的促进作用日益显现.指纹门票为 ...
- linux下添加环境变量
我安装完 RedHat Linux 5 之后,在终端使用一些命令,如: ifcinfig 查看本机的IP,发现不能使用此命令,提示说“command not found”,这该怎么办呢 想想肯定是环境 ...
- 参考__Linux
教程 billie66.github.iocentos下配置vsftpd虚拟用户教程Linux命令大全ubuntu14.04 配置vsftp 实用技能 移动 Ubuntu16.04 桌面左侧的启动器到 ...