css基础知识总结

什么是css

css即层叠样式表,用于控制网页数据的表现,使得网页数据和表现控制分离。

css引入的是四种方式

行内式

行内式就是在标签内部的style属性编辑控制方式。这种方式,不能体现css的优势,不推荐!

<p style="background-color: rebeccapurple">hello css</p>

嵌入式

嵌入式指的是在head标签中,嵌入style标签控制对应的标签

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: rebeccapurple;
        }

    </style>
</head>

链接式

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="1.css">
</head>

导入式

同样在head标签中嵌套style,然后在style里导入css文件链接

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        @import "1.css";
    </style>
</head>

注意:使用导入式,css是在整个页面都加载后再导入的,这样就可能导致网页在一个短时间内处于杂乱的状态。但是链接式不一样,他是在加载网页内容前,先导入的,所以不存在这个问题。

css选择器

css选择器是指如何去选择具体的某个标签,然后去实现控制。

1.基础选择器

*:通用元素选择器,控制所有的标签
*{background-color: rebeccapurple}
E:标签选择器,控制所有该标签的样式
p*{background-color: rebeccapurple}
.info class选择器 也可以具体指定某个标签下的选择器 E .class
.abc{background-color: rebeccapurple}
div .abc{background-color: red}
#info E #info id 选择器。 ID是唯一的,class也可以不唯一。
#abc{background-color: rebeccapurple}
div #abc{background-color: red}

2、组合选择器

E,F 多元素选择器,同时控制多个元素。div,a{background-color: rebeccapurple}
E F 后代选择器,注意空格。
E>F 子选择器
E+F 毗邻选择器,找到紧跟着E后面的F。

注意:后代选择器是包括子孙后代,子选择器只包括子代

3、属性选择器

E[att]         匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如“[cheacked]”。以下同。)   p[title] { color:#f00; }

 
 E[att=val]     匹配所有att属性等于“val”的E元素                                 div[class=”error”] { color:#f00; }

 
 E[att~=val]    匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素      td[class~=”name”] { color:#f00; }

 E[attr^=val]    匹配属性值以指定值开头的每个元素                     div[class^="test"]{background:#ffff00;}

 E[attr$=val]    匹配属性值以指定值结尾的每个元素                     div[class$="test"]{background:#ffff00;}

 E[attr*=val]    匹配属性值中包含指定值的每个元素                     div[class*="test"]{background:#ffff00;}

4、伪类

用于给选择器,增加一些效果。

a:link 控制没接触过的链接
a:hover 鼠标放在上面时
a:visited 已经访问的链接
a:active  选定的时候

css的继承和优先级

所谓的css优先级是指在多个选择器同时控制同一个标签时,应该选择哪一个。

1、内联样式表权重为1000
2、ID,一个ID权重为100
3、class,权重为10
4、标签, 权重为1 
计算方式是逐个累加。 比如 div .aaa权重为1+10

css 的继承:

所谓的继承就是说父标签的部分属性可以被后代继承,但是这个权重是非常低的,只要是有相同的属性控制,就可以直接被覆盖。
有部分属性是无法被继承的:border, margin, padding, background等

!important

有这个声明的优先级是最高的,除非冲突不然无视一切。当冲突时,再使用权重比较。

css的常用属性

颜色属性

<div style="color:blueviolet">ppppp</div>
 
<div style="color:#ffee33">ppppp</div>
 
<div style="color:rgb(255,0,0)">ppppp</div>
 
<div style="color:rgba(255,0,0,0.5)">ppppp</div>
/*a 透明度*/

字体属性

font-size: 20px/50%/larger
 
font-family:'Lucida Bright'
 
font-weight: lighter/bold/border/
 
<h1 style="font-style: oblique">hello</h1>

背景属性

background-color: cornflowerblue

background-image: url('1.jpg');

background-repeat: no-repeat;(repeat:平铺满)

background-position: right top(20px 20px);(横向:left center right)(纵向:top center bottom)

文本属性

font-size: 10px;
text-align: center;   横向排列
line-height: 200px;   文本行高 通俗的讲,文字高度加上文字上下的空白区域的高度 50%:基于字体大小的百分比
vertical-align:-4px  设置元素内容的垂直对齐方式 ,只对行内元素有效,对块级元素无效
text-indent: 150px;   首行缩进
letter-spacing: 10px;
word-spacing: 20px;
text-transform: capitalize;

边框属性

border-color: red;
border-style: dashed;
border-width: 1px; 

可以简写为:border:1px dashed 1px

display属性

none
block
inline
inline-block
其中inline-block拼接的两个元素中间有小空隙,可以通过下面的方法去掉
在外层div下,word-spacing: -5px;

外边距,内边距

  • margin 外边距
  • padding 内边距
  • border 边框
  • content 内容

下面的例子中的元素的总宽度为300px:

width:250px;
padding:10px;
border:5px solid gray;
margin:10px;   

posted on 2018-10-08 20:03  哟,写bug呢??  阅读(407)  评论(0编辑  收藏  举报

导航