您的位置:首页 > Web前端 > CSS

CSS基础知识

2015-03-03 17:16 316 查看
CSS全称为"层叠样式表(Cascading Style Sheets)"

<link href="base.css" rel="stylesheet" type="text/css" />


内联式 > 嵌入式 > 外部式 【就近原则(离被设置元素越近优先级别越高)】

但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。

一. CSS样式基本知识

子选择器(作用于元素的第一代后代): .food>li{border:1px solid red;}

包含选择器(作用于元素的所有后代): .first span{color:red;}

通用选择器: * {color:red;}

伪类选择符(它允许给html不存在的标签[标签的某种状态]设置样式,比如给html中一个标签元素的鼠标滑过的状态来设置字体颜色): a:hover{color:red;}

分组选择符(想为html中多个标签元素设置同一个样式时,可以使用分组选择符):

继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。

p{color:red;}
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
结果p中的文本与span中的文本都设置为了红色。

但注意有一些css样式是不具有继承性的。如border:1px solid red;

p{border:1px solid red;}
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>
只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

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*/
记住!important优先级样式是个例外,权值高于用户自己设置的样式。

p{color:red!important;}
p{color:green;}

二. 文字排版

文字对齐:text-align:center/left/right;

字体设置:font-family:"宋体";

字体颜色:color:red;

字体大小:font-size:12px;

字体加粗:font-weight:bold;

文字斜体:font-style:italic;

下划线: text-decoration:underline;

删除线: text-decoration:line-through;

行间距: line-height:1.6em;

段落缩进:text-indent:2em; [2em的意思就是文字的2倍大小]

文字/字母间隔:letter-spacing:50px;

单词间隔:word-spacing:50px;

三. 元素分类

块状元素、内联元素(又叫行内元素)和内联块状元素

常用的块状元素有:

<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的内联元素有:

<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

常用的内联块状元素(同时具备内联元素、块状元素的特点)有:

<img>、<input>

内联转块:display:block

块转内联:display:inline-block

块级元素特点:

1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

2、元素的高度、宽度、行高以及顶和底边距都可设置。

3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。

内联元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度、行高及顶部和底部边距不可设置;

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

四. 盒模型

内容(content)、填充(padding)、边框(border)、边界(margin)

边框: border:2px solid red; [虚线:dashed、点线:dotted、实线:solid]

一个元素实际宽度(盒子的宽度) = 左边界 + 左边框 + 左填充 + 内容宽度 + 右填充 + 右边框 + 右边界

一个元素实际宽度(盒子的宽度) = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right

一个元素实际高度(盒子的高度) = margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom

五. 布局模型

流动模型(Flow)、浮动模型(Float)、层模型(Layer)

1、流动模型(Flow)是默认的网页布局模式

第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。

第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。

2、浮动模型(Float) ==> 后者覆盖前者

float:left/right;

3、层模型(Layer) ==> left优先级高

绝对定位(position: absolute)、相对定位(position: relative)、固定定位(position: fixed)

(1) position:absolute(表示绝对定位),将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

相对于浏览器窗口处于右下角。并且拖动滚动条时位置固定变化。

div{
width:200px;
height:200px;
border:2px red solid;
position:absolute;
right:0;
bottom:0;
}
<div id="div1"></div>
(2) position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。

相对于以前位置向下移动50px,向右移动100px

#div1{
width:200px;
height:200px;
border:2px red solid;
position:relative;
left:100px;
top:50px;
}
<div id="div1"></div>
<span>偏移前的位置还保留不动,覆盖不了前面的div没有偏移前的位置</span>
(3) 固定定位(position: fixed),与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

相对于浏览器视图处于右下角。并且拖动滚动条时位置固定不变。

#div1{
width:200px;
height:200px;
border:2px red solid;
position:fixed;
right:0;
bottom:0;
}
<div id="div1"></div>
<p>文本文本文本文本文本文本文本文本文本文本</p>
(4) Relative与Absolute组合使用

1、参照定位的元素必须是相对定位元素的前辈元素:

2、参照定位的元素必须加入position:relative;

3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

<div id="box1"><!--参照定位的元素-->
<div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>

#box1{
width:200px;
height:200px;
position:relative;
}
#box2{
position:absolute;
top:20px;
left:30px;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: