前端开发

CSS基础

2018-04-18  本文已影响17人  hmj1993

概念

CSS指层叠样式表(级联样式表),作用是用来美化html标签

书写位置

<head>
<style type="text/css">
//样式代码
</style>
</head>

选择器

选择器是一个选择谁的过程

  1. 标签选择器
标签{
属性:值;
}
  1. 类选择器
.自定义类名{
属性:值;
}

特点:谁调用,谁生效
一个标签可以多个类选择器
多个标签可以调用同一个类选择器
命名规则:不能用纯数字或者数字开头来定义类名
不能使用特殊符号(_除外)来定义类名
不推荐使用汉字来定义类名
不推荐使用标签名,属性值,属性来定义

  1. id选择器
#自定义类名{
属性:值;
}

特点:谁调用,谁生效
一个标签只能调用一个id选择器
一个id选择器在一个页面只能调用一次

  1. 通配符
*{
属性:值;
}
  1. 交集选择器
标签+类/id选择器{
属性:值;
}

特点:既是某个标签,而且这个标签调用了类/id选择器

  1. 后代选择器
选择器+空格+选择器{
属性:值;
}

后代选择器的基本要求:包含/嵌套关系
特点:父在前,子在后
无限制隔代
只要能代表这个标签,可以是标签选择器,类选择器,id选择器自由组合

  1. 子代选择器
选择器>选择器{
属性:值;
}

特点:选择的是直接下一代

  1. 并集选择器
选择器,选择器,选择器{
属性:值;
}

文本元素

样式表书写位置

<head>
  <style type='text/css'>
    样式表内容
  <style>
</head>
<head>
<link rel='stylesheet' href='css文件路径'>
</head>

标签分类(显示方式)

css三大特性:

链接伪类

a:link{属性:值;}<==>a{属性:值;}效果是一样的,链接的默认状态
a:visited{属性:值;} 链接访问之后的状态
a:hover{属性:值;}鼠标放到链接上显示的状态
a:active{属性:值;}链接激活的状态,即鼠标放着不松手
:focus{属性:值;}获取焦点
label for id(获取光标焦点)
<label for="...">***</label><input type='text' id='...'>
注意:如果四个链接伪类都使用,按顺序书写。

文本修饰

text-decoration 默认为none,下划线underline ,删除线line-through

背景属性

  1. background-color 背景颜色
  2. background-image 背景图片url("")
  3. background-repeat 背景平铺 no-repeat/repeat(默认)/repeat-x/repeat-y
  4. background-position背景定位left/right/center/top/bottom
    当方位值只写一个的时候,另外一个值默认居中;
    当写两个方位值的时候,顺序没有要求
    写两个具体值的时候,如20px 30px,第一个值代表水平方向距左边框的距离,第二个值代表垂直方向距上边框的距离
  5. background-attachment 背景是否滚动scroll (默认)/fixed
    如果为fixed,position是相对浏览器的;如果为scrol,position是相对父标签的

背景属性的连写

background:red url("") no-repeat bottom fixed;
连写的时候没有顺序要求,url为必写项

行高

浏览器默认文字大小:16px
行高:基线与基线之间的距离即文字高度➕上下边距
基线:一段文字内容中底部最高的底线
下边距:文本盒子的最下面
上边距:文本盒子的最上面
顶线:文字内容的最上面
底线:文字内容的最下面
一行文字行高和父元素高度一致时,垂直居中显示

行高的单位

行高单位 文字大小 行高值
px 20px 20px
em 20px 40px
% 20px 30px
2 20px 40px

总结:
单位除了像素以外,其余单位情况下行高都是与文字大小乘积

父元素行高单位 父元素文字大小 子元素文字大小 子盒子行高值
40px 20px 30px 40px
2em 20px 30px 40px
150% 20px 30px 30px
2 20px 30px 60px

总结:
不带单位时,行高是和子元素文字大小相乘,em和%的行高是和父元素文字大小相乘,行高以像素为单位,就是定义的行高值
推荐行高使用像素为单位

盒子模型

作用:页面布局

边框合并(table的属性)

border-collapse:collapse;

行内元素可以定义左右的内外边距,上下会被忽略(不起作用)。
行内块可以定义内外边距。

文档流(标准流)

元素自上而下,自左而右。块元素独占一行,行内元素在一行上显示,碰到父元素的边框换行

浮动布局

float: left/right;

.clearfix:after{
content:"."/" ";
display :block;
height:0;
line-height:0;
visibility:hidden;
clear:both;
}
//为了兼容ie浏览器,加上以下代码
.clearfix{
zoom:1;
}

css初始化

为了考虑到浏览器的兼容问题,其实不同浏览器对有些标签的默认值是不同的,如果没有对css初始化,往往会出现浏览器之间的页面差异。

定位

position

定位的盒子居中显示

1.margin:0 auto;只能让标准流的盒子居中;
2.定位的盒子居中(脱标),先向右走父元素盒子的一半,再向左走子盒子宽度的一半

left:50%;
margin-left:-width/2.0px;//(当前元素宽度的一半,向右为正数,向左为负)

标签包含规范

1.div可以包含所有的标签
2.p标签不能包含div,h1-h6等块标签
3.h1可以包含p,div等标签
4.行内元素尽量包含/嵌套行内元素
5.行内元素不要包含块元素

规避脱标流

1.尽量使用标准流
margin-left:auto;将盒子左侧充满,代替浮动float:right
2.标准流解决不了的时候用浮动
3.浮动解决不了用定位

图片和文字垂直居中对齐

vertical-aligninline-block效果最好,默认属性是vertical-align:baseline;
给图片设置vertical-align:middle;可以让图片和文字垂直对齐;
vertical-align的其余值:top/bottom等

css可见性

overflow:hidden;溢出隐藏
visibility:hidden;隐藏元素,但是还占据原来的位置
display:none;隐藏元素,不占用原来的位置
display:block;元素可见
display:none/block常配合js使用

css之内容移除(写了文字但是又不需要被看见,网页优化)

1.使用text-indent,如

a{
display:inline-block;
text-indent:-5000em;
}

2.使用overflow:hidden,如

div{
width:300px;
height:0px;
padding-top:100px;
over-flow:hidden;
}

css精灵图

属性选择器

input[type=text][class]

emmet语法(插件)

上一篇 下一篇

猜你喜欢

热点阅读