CSS基础知识点全面解析(转载)

html-css015

CSS基础知识点全面解析(转载),第1张

基本

常识与实践

链接方式

基本

最基本的方式就是直接在html文件中指定元素样式,这种方式不推荐,因为将表现层和结构层混起来了

"style="background-image:url({{user.avatar}})"

内部链接

要为html直接增加css样式,需要在元素中增加开始和结束style标记,css规则放在里面

<style>

p {

color: gray

}

</style>

css文件外置

另一种方式将css文件外置,如style.css,作为样式表(stylesheets),然后从html众创建一个到这个文件的外部链接,用元素,用外部样式表的好处是要修改整个网站的样式,只要进入这个样式表,对css进行几处修改即可。如:

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

多样式表

使用多个样式表,顺序很重要,一个样式表会覆盖在它上面链接的样式表中的样式,有时会有一个样式表作为页面的基础样式,要修改样式,链接这个样式表,然后在下面提供自己的样式表,指定要修改的样式,如下所示:

<link rel="stylesheet" href="corperate.css">//总公司样式

<link rel="stylesheet" href="beverage-division.css">//部门对总公司的样式做了一些补充,甚至可以覆盖公司的样式

<link rel="stylesheet" href="lounge-seattle.css">//西雅图休闲室对样式表做了自己的调整

简写

css属性太多,能不能不费吹灰之力就指定这些属性呢?可以把同一属性的值结合起来写成一句,即简写。

简写格式

padding

padding: 0px 40px 30px 20px,顺序是上右下左,顺时针有木有,如果都相同可以用padding: 20px

padding-top: 0px

padding-right: 40px

padding-bottom:30px

padding-left: 20px

margin

上面的padding格式同样对margin也适用,还有另一种方法,如果上下一样,左右一致,可以这样写:margin: 0px 20px,前面指定上下,后面指定左右。

border

边框属性简写 border: thin solid #007e73,可以用你喜欢的任何顺序。

background

背景简写 background: white url(images/cocktail.gif) repeat-x,同样顺序随便

字体

字体简写的格式稍微复杂一些:

font : font-style font-variant font-weight font-size/line-height font-family

选择

子孙选择器

父元素和子孙元素名之间有一个空格,子孙选择器会选择所有子孙,包括这个元素中嵌套的所有,不管嵌套多深,例如

color: black

}

直接孩子

如果要选择直接的孩子,用>

color: black

}

复杂选择

更复杂的选择,方法还是一样

color: blue

}

规则添加

当我们用选择器选择元素使用一个规则时,会对所有该元素应用这个样式,所以如何单独地选择这些元素呢?这里就需要类class,class可以定义一类元素,对属于该类的所有元素应用样式.要将一个元素加入一个类,只需要增加属性”class”,并提供类名,如”greentea”:

<p class="greentea">

...

</p>

类元素选择器

先选择这个类中的元素,再用”.”指定一个类,最后是类名,如:

p.greentea {

color: green

}

添加类元素

如果想对所有<blockquote>也做同样的处理,可以:

blockquote.greentea,p.greentea {

color: green

}

<blockquote class = "greentea">

类选择器

如果想把<h1>,<h2>,<h3>,<p>和<blockquote>都增加到greentea呢?要对类中的所有元素都用同一样式可以用:

.greentea{

color: green

}

/ 省略所有元素名,只有一个点,则会应用到所有成员 /

多类元素

元素可以有多个类,例如:

<p class="greentea raspberry blueberry"

特定元素选择器

如果多个选择器都选择了一个元素呢?例如上面的3个类都与p元素匹配,并且都定义了color属性,那么那个会胜出?

id

id的作用

id属性用来唯一地命名元素,通常你想对多个元素重用某些样式,才能真正发挥类的作用。但是如果只有一个元素需要样式,或者页面上只有一个元素,那就应该使用id,每个元素只能有一个id,页面中只能有一个元素拥有特定id,一个元素有一个id,同时可以属于一个或多个类,id中不允许出现空格或其他特殊字符,如

<p id="footer">...</p>

选择元素

用id选择一个元素,需要在id前面使用一个#字符(类是[.]),id选择器只与页面中的一个元素匹配

color: red

}//选择id为footer的任意元素

p#footer{

color: red

}//选择id为footer的<p>元素

实践建议

继承

样式继承

层叠

媒体查询

link媒体查询

你可能想针对将要显示页面的设备调整页面的样式,可以用media属性,在link元素中增加这个属性.如

<link rel="stylesheet" href="lounge-mobile.css" mdeia="screen and (max-device-width: 480px)">

<link rel="stylesheet" href="lounge-print.css" media="print">

css媒体查询

可以直接在css中增加媒体查询,使用@media规则,把对所有媒体类型都通用的规则放在@media规则下面,例如

@media screen and (min-device-width: 481px){//当设备屏幕宽度大于480px时使用

margin-right: 250px

}

}

@media screen and (max-device-width: 480px){//当设备屏幕小于等于480px时使用

margin-right: 30px

}

}

@media print { // 如果要打印页面,使用该规则

body {

font-family: Times, "Times New Roman", serif

}

}

实践建议

属性

盒模型

盒模型是css看待元素的一种方式,css将每个元素看作由一个盒子表示,每个盒子由一个内容区以及可选的内边距,边框和外边距组成。由内而外分别是:

border 边框

color 颜色

文本元素的字体颜色

body{

background-color: rgb(80%, 40% , 0%)//橙色

}

还可以指定0-255之间的一个数值,例如:

body{

background-color: rgb(204, 102, 0)//和上面颜色一致,255*80% = 204...

}

font-family 字体

大多数计算机上通常只安装了部分字体,所以选择字体时要当心,通常指定的font-family包含一个候选字体列表,他们都来自同一个字体系列,候选字体用逗号分隔,大小写字母必须一致,最后总是放一个通用的字体系列名,如果一个字体名中包含多个单词,比如Courier New,如何指定?用引号,”Courier New”,如:

body{

font-family: Verdana, Geneva, Arial, sans-serif<一一首选字体呈降序

}

字体系列

每个font-family包含一组有共同特征的字体。共有5个字体系列:

body { font-size : small}

h1 { font-size : 150%}

h2 { font-size : 120%}

注意老版IE不支持用像素指定的文本缩放

浏览器默认字体大小

其他属性

left 指定一个元素的左边所在位置

top 控制一个元素顶部的位置

background-image 在元素后面放置一个图像,如

background-image: url(images/background.gif)

//用url括起来,注意没有引号

background-repeat 背景图像是否重复

line-height: 1//代表elixirs中的所有元素的行间距为其自己字体大小的1倍

}

width: 200px

float: right

}

background-color: #675c47

color:#efe5d0

text-align: center

padding: 15px

margin: 10px

font-size:90%

clear:right

}

width: 800px

padding-top: 5px

padding-bottom: 5px

background-color: #675c47

}

那么页面的宽度将被限制为800px,无论浏览器宽度如何变化都不会移动,但这会导致浏览器很宽时,右边有很多空白空间

凝胶布局 Jello

width: 800px

padding-top: 5px

padding-bottom: 5px

background-color: #675c47

margin-left: auto

margin-right: auto

}

绝对定位

position: absolute

top: 100px

right: 200px

width: 280px

}

display: table

border-spacing: 10px//于是不再需要div中的外边距

}

display: table-row

}

display: table-cell

background: #efe5d0 url(images/background.gif) top left

font-size:105%

padding: 15px

/ margin: 0px 10px 10px 10px/

vertical-align: top//确保表格两个单元格中的所有内容相对于单元格上边对齐,默认为中间对齐,可以设置为top,middle,bottom

}

display: table-cell

background: #efe5d0 url(images/background.gif) bottom right

font-size:105%

padding: 15px

/ margin: 0px 10px 10px 10px/

vertical-align: top

}

特点:自动成一行,宽度为100%,可设置宽高。

常用块级元素:

常用行内元素:

class="定义样式名称"

id="定义样式名称"

href="超链接地址"

name="用锚定义一个标签",通过href链接跳到指定的标签

src="图片的地址"

title="鼠标移上去显示的提示文字"

alt="当图片不显示时,显示的文字"

sytle="书写css样式"

type="定义input类型"

指元素的外边距、边框、内边距,内容大小

文本对齐

float元素对齐/* */

html和css的元素、属性、样式有很多,这里这里只罗列了一些经常用到的知识点,更详细的可以查看参考文档。

盒子模型是CSS中一个很重要的概念,页面中的所有元素都可以看成一个盒子,并占据一定的页面空间,一个页面由很多盒子组成,盒子之间会互相影响。只有掌握盒模型以及其中每个属性的用法,才能真正控制好页面元素。

盒子模型主要定义四个区域: 内容(content)、内边距/填充(padding)、边框(border)和外边距(margin)

盒子的内容区域存放文本和图片等页面元素,拥有如下属性:

边框基本属性:

通过一个属性设置四个方向边框的宽度、样式、颜色

属性:border

取值:width style color

只设置某一条边框的宽度、样式、颜色

语法:border-方向(top/right/bottom/left):width style color

只设置边框的宽度、样式、颜色中的一种

语法:border-属性(width/style/color):取值

只设置某一条边框的宽度、样式、颜色中的一种

语法:border-方向(top/right/bottom/left)-属性(width/style/color):取值

属性:border-radius

作用:设置倒角位置处圆的半径,半径越大,弧度越大。

取值:

属性:border-image

语法:

border-image-source :引入背景图片

取值:

默认值:无图片

url(图片URL地址)

border-image-slice :切割引入背景图片,把边框背景切成9份

取值:

number:默认单位px

百分比:

fill:保留边框图像的中间部分

border-image-width :指定边框图片的宽度

border-image-repeat :指定边框背景图片的排列方式,可定义2个参数,即水平和垂直方向

取值:

Stretch:默认值,拉伸

Repeat:平铺

Round:取整平铺

内容区域和边框(边缘)之间的距离

语法:padding: 值;

单边设置:padding-方向(top/right/bottom/left):值;

取值:

数值px

百分比

内边距的简写方式:

padding:value

四个方向内边距的值均为value

padding:value1 value2

Value1为上下内边距的值,value2为左右内边距的值

padding:value1 value2 value3

Value1为上内边距的值,value2为左右内边距的值,value3为下内边距的值

padding:value1 value2 value3 value4

上右下左内边距的值分别为value1, value2, value3, value4

外边距指元素与元素之间的距离,即围绕在元素边框之外的空白区域,通过外边距可以为元素创建额外的“空间”。默认不能被其他元素所占据,用于拉伸两个元素间的距离。

语法:margin: 值;

单边设置:margin-方向(top/right/bottom/left):值;

取值:

重新制定元素尺寸计算模式

属性:box-sizing

取值:

属性:resize

取值:

位于元素边框之外的一条线

属性:

outline:width style color

属性:box-shadow

语法:

box-shadow: h-shadow v-shadow blur spread color inset

取值:由一组值构成的值列表

属性:background-color

取值:颜色值或transparent

注意:背景颜色是从边框位置处开始绘制

属性:background-image

取值:url(背景图像URL)

属性:background-repeat

取值:

属性:background-attchment

取值:

scroll:默认值,滚动

fixed:固定

属性:background-position

取值:

属性:background-size

取值:

属性:background-origin

取值:

属性:background-clip

取值:

CSS3多背景通过为每个背景属性提供多个属性值实现。

font 简写属性语法:

将所有字体属性合写为一行,其中font-family是复合属性中必不可少的属性。

可以不设置其中的某个值,如果省略值地话,就使用属性的默认值。

②文本属性:

(2)CSS3文本阴影属性:

属性:text-shadow

作用:产生阴影和模糊主体

语法:

作用:定义列表的编号样式

属性:list-style-type

作用:用于设置列表项的图像属性

语法:

图像URL地址:图像的相对路径或绝对路径

none:默认值,不指定图像

注意:图片图标与文字之间的距离在不同浏览器中是不一样的,因此,一般情况下不采用这种方式来设置列表的图片样式。

通过设置<li>的背景图片的方式来设置列表图片基本步骤:

设置list-style-type属性值为none

设置<li>标记的背景属性backgruond

作用:用于声明列表标志相对于列表项内容的位置

语法:

作用:可以同时设定列表样式类型、列表样式位置、列表样式图片等属性的值。

语法:

注意:

可以不设置其中的某个值,未设置的属性采用默认值

同时指定list-style-image和list-style-type时,list-style-image优先显示,除非list-style-image设置为none,或图片路径错误无法显示

当列表与列表项目同时使用样式时,列表项目的样式优先显示

特点:

可以设置宽度和高度

默认情况下每个块级元素独占一行

作用:

块级元素主要用于页面布局

常用块级元素:

<div>、<p>、<h1>~<h6>、<ol>、<ul>等

特点:

不可以设置宽度和高度,其宽度就是自身文字或图片的宽度

默认情况下多个行内元素会在一行内显示,遇父元素边界时会自动换行

作用:

行内元素主要用于设置文样式

常用行内元素:

<a>、<span>、<em>、<b>、<i>、<strong>、<img>、<input>等

作用:控制页面元素脱离原有文档流,实现向左或向右移动,直到该元素外边缘碰到其包含框或另一个浮动框的边缘停止,标准流中的其他盒子将顶到浮动盒子的位置。浮动的元素不占据实际空间。

属性: float

取值:

浮动元素不会相互重叠;

浮动元素不会上下浮动,如果一个浮动元素在另一个浮动元素之后显示,而且会超出容纳块,则它下降到低于先前任何浮动元素的位置。

作用:规定元素的哪一侧不允许出现其他浮动元素。

取值:

作用:控制页面元素在页面中的位置。

属性:position

取值:static/relative/absolute/fiexed

默认属性值,元素按照标准文档流进行排列,块级元素独占一行, 行内元素位于一行内显示,一行显示不下,自动换行。

特点:

相对于自身原有位置进行偏移

仍处于标准文档流中

随即拥有偏移属性和z-idex属性

偏移属性:

left:数值px

right:数值px

top:数值px

bottom:数值px

当元素相对定位后会产生Z轴上的堆叠,不设置z-index属性时,默认该元素出现在X轴和Y轴构成的平面上。

特点:

建立了以包含块为基准的定位

绝对定位的元素的位置相对于最近的已定位祖先元素(设定了绝对定位、相对定位或固定定位中的任何一种),如果元素没有已定位的祖先元素,则该元素的位置相对于浏览器窗口。

完全脱离了标准文档流

随即拥有偏移属性和z-idex属性

偏移属性:

left:数值px

right:数值px

top:数值px

bottom:数值px

绝对定位未设置偏移量的特点:

无论是否存在已经定位的祖先元素,都保持在元素的初始位置

脱离了标准文档流

设定固定定位的元素框的表现类似于将position设置为absolute,不过其包含块是浏览器窗口本身。

在计算机显示中把垂直于屏幕平面的方向称为Z方向,CSS绝对定位容器的z-index属性即对应该方向。

作用:用于控制元素的层叠次序,使得某个元素浮于其他元素之上。

语法:

auto:遵循其父元素的定位

number:整数,可负,值大者叠加在上层

注意:使用z-index属性时,要求该元素的position属性值为absolute、relative或fixed。

作用:用于定义建立布局时元素生成的显示框类型

语法:dispaly:值

作用:用于定义建立布局时元素生成的显示框类型

语法:visibility:值