CSS

作者: bubblehX | 来源:发表于2016-07-27 18:16 被阅读4次

样式选择器

  • 标签选择器
  • 类选择器:.
  • ID选择器:#
  • 子(后代)选择器:> 空格
  • 通用选择器:* 匹配所有html标签
  • 属性选择器:[att=val] ,如#id{}等价于id=idName{}.className{}等价于class~=className{},都是特例。
    [att^=val]:以val开头;[att$=val]:以val结尾;[att*=val]:包含val...
  • 伪类选择器:给html不存在的标签(标签的某种状态)设置样式。
a:link{color: gray;}  //链接
a:visited{color: red;}  //已访问
a:hover{color: green;}  //鼠标悬停
a:active{color: orange;} //选中时```
- [伪元素选择器](http://www.runoob.com/css/css-pseudo-elements.html):
![](https://img.haomeiwen.com/i1943350/2a23ae4381536db5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- *类选择器和ID选择器的区别:*
1、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。
2、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。

- *子选择器和包含选择器的区别:*
子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。包含选择器通过空格来进行选择,而子选择器是通过“>”进行选择。
总结:>作用于元素的第一代后代,空格作用于元素的所有后代。

- 当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色:
`h1,span{color:red;}`它相当于下面两行代码:`h1{color:red;}span{color:red;}`

- *权值*
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

p{color:red;} /权值为1/
p span{color:green;} /权值为1+1=2/
.warning{color:white;} /权值为10/
p span.warning{color:purple;} /权值为1+1+10=12/

footer .note p{color:yellow;} /权值为100+10+1=111/```

注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

格式化排版

元素分类

常用的块状元素有:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<li>、<dl>、<table>、<address>、<blockquote> 、<form>
常用的内联元素有:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块状元素有:
<img>、<input>

将块状元素转换为内联元素:{display:inline;}
将内联元素转换为块状元素:{display:block;}
转换为inline-block元素:{display:inline-block;}

  • 块状元素(block)
    特点:
    1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)
    2、元素的高度、宽度、行高以及顶和底边距都可设置。
    3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

  • 内联元素(行内元素,inline)
    特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度及顶部和底部边距不可设置;
    3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

  • 内联块状元素(inline-block)
    同时具备内联元素和块状元素的特点。
    特点:
    1、和其他元素都在一行上;
    2、元素的高度、宽度、行高以及顶和底边距都可设置。

盒模型

  • 边框(border)
    属性:粗细,样式,颜色。
    border-width:2px;(thin细 | medium中 | thick粗(但不是很常用),最常还是用像素(px))
    border-style:solid;(dashed虚线,dotted点线,solid实线)
    border-color:red;(十六进制颜色,#888)

单独设置边框

div{
    border-bottom 底:1px solid red;
    border-top 上:1px solid red;
    border-right 右:1px solid red; 
    border-left 左:1px solid red;
}```

- 填充(padding)
元素内容与边框之间是可以设置距离的,称之为“填充”。填充也可分为上、右、下、左(顺时针)。

- 边界(margin)
元素与其它元素之间的距离可以使用边界来设置。边界也是可分为上、右、下、左。
*padding在边框里,margin在边框外。*

### 布局模型
- 流动模型(flow)
默认的网页布局模型
1、块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
2、在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

- 浮动模型(float)
默认宽度为内容宽度,半脱离文档流(对元素,脱离文档流;对内容,在文档流)

.clearfix:after{ //清除float元素,clear属性指定段落的左侧或右侧不允许浮动的元素。
content: 0;
display: block;
clear: both;
height: 0px;
overflow: hidden;
visibility: hidden;
}```

  • 层模型(layer)
    CSS定义了一组定位(positioning)属性来支持层布局模型。
    1、绝对定位(position: absolute)
    绝对于其父元素(或)位置,默认宽度为内容宽度,脱离文档流,参照物为第一个定位祖先或者根元素。
    2、相对定位(position: relative)
    相对于其原来的位置
    3、固定定位(position: fixed)
    参照物为视窗
  • 弹性布局(flax)

相关文章

网友评论

      本文标题:CSS

      本文链接:https://www.haomeiwen.com/subject/knbojttx.html