美文网首页
页面制作——CSS 1-5

页面制作——CSS 1-5

作者: hyt222 | 来源:发表于2017-08-03 10:05 被阅读0次

1.CSS简介

Cascading Style Sheet 层叠样式表

主要用来定义页面中的表现,HTML 描述页面中的内容。

CSS的引入

1.外部样式表

2.内部样式表

通过style标签引入

网站有一些样式是很多页面共有的,把共有的样式写到一个文件中,通过外部样式表引入,维护方便。每个页面特有的样式,如果内容较少放到内部样式表中,内容较多时,为了不影响加载放到外部样式表中。

3.内嵌样式

通过标签的 style 属性引入。这种方式使得HTML和CSS杂糅在一起,不利于后期的维护。制作静态页面时,不建议用这种方式引入。做动态效果时,可能会用 js 改变 style 属性引入一些 CSS 样式。

CSS 语法

1.语法  

selector{

property1:value;

property2:value;}

选择器  属性声明 = 属性名:属性值;

每个属性声明需要用分号分隔。CSS 注释为 /* */,// 在CSS中无效。


2.浏览器私有属性

浏览器厂商会实现一些还没有成为标准的属性,为了区分标准属性,会在属性前加一些私有前缀。

chrome,safari:-webkit-     firefox:-moz-      IE:-ms-     opera:-o-

假如我们要用到这些私有的属性,为了兼容不同的浏览器,需要这样写:

私有属性在前,标准属性在后

3.属性值语法(value) [<length>|<percentage>auto]{1,4}

包括基本元素(<length>),组合符号(| [])和数量符号({})。


4.基本元素

关键字:auto,solid,bold...

类型:基本类型(<length>,<percentage>,<color>...) ;其他类型(基本类型组合)(<'pading-width'>,<color-stop>...)

符号(/ ,): 做分隔属性值用。

inherit,initial:每个属性都可取到这两个值,文档中这两个值隐藏。


5.组合符号

空格:<'font-size'> <'font-family'>  ——  12px arial

由空格隔开的两个基本元素,表示这两个基本元素必须出现,而且顺序必须一样。

&&:<length>&&<color>  ——  green 2px

由 && 连接的两个基本元素必须出现,但顺序无关。

||: underline || overline || line-through || blink —— overline underline

由 || 分隔的基本元素至少要出现一个,顺序无关

|:<color>|<transparent> —— orange

由 | 分隔的两个基本元素只能出现一个。

[ ]: bold[ thin || <length>]

[ ] 主要做分组的作用,[ ] 里可看成一个整体,再和外面基本元素进行计算。


6.数量符号

无数量符号:<length> —— 1px

基本元素只能出现一次。

+:<color-stop>[,<color-stop>]+ —— blue,green 50%,gray

基本元素可以出现一次或多次。

:inset?&& <color> —— inset blue

?表示基本属性可出现可不出现,相当于一个可选值。

{ }:<length>{2,4} —— 1px 2px

{ } 表示基本元素可以出现最少几次和最多几次。

*:<time>[,<time>]* —— 1s,4ms

* 表示基本元素可出现 0 次、1次或多次。

#:<time># —— 2s,4s

# 表示基本元素出现一次或多次,中间需用逗号隔开。


7.属性值例子

padding-top:<length>|<percentage> —— padding-top:1px;

border-width:[<length>|thick|medium|thin]{1,4} —— border-width:2px;

box-shadow:[inset?&&[<length>{2,4}&&<color>?]]#|none ——

box-shadow:3px 3px rgb(50%,50%,50%),red 0 0 4px inset;


8.@规则语法

@标识符 xxx;     @标识符 xxx{}

@media:允许在相同样式表为不同媒体设置不同样式。用来做一些响应式布局。设备只有符合@media这个媒体查询条件,样式才能生效。

@keyframe:主要用来描述 CSS 动画一些中间步骤。

@font-face:通过 @font-face 引入外部字体,使页面中字体更加丰富。

2.选择器

selector{

property1:value;

property2:value;}

selector:选择器  属性声明 = 属性名:属性值;

选择器可简单理解为:它是一个表达式,通过这个表达式可选中一系列元素,样式会运用到选中的元素上。

选择器可简单分为:简单选择器 伪元素选择器 组合选择器

简单选择器

1.标签选择器 p

p{ color:blue; } 选中段落应用样式

2.类选择器 .className

<p class = "special stress">段落</p>  ——  .special{color:red;} class的值可以是多个的。

以点 开头;className的值为字母,数字,-,_组成;className必须以字母开头;区分大小写;相同的类名在页面中可出现多次。

3.id选择器 #id

<div id="banner">banner</div> —— #banner{color:gray;}

以#开头;id由字母,数字,-,_组成;id必须以字母开头;区分大小写;只出现一次。

4.通配符选择器 *

*{color:blue;} 选择页面所有元素

5.属性选择器 [att]

<input disabled type="text"> —— [disabled]{background-color:#eee;}

选中具有某个属性的元素。

6.属性选择器 [att=val]

<input type="button"> —— [type=button]{color:blue;}

选中属性值是某个特殊值的元素。id选择器是属性选择器的特例。#nav{}==[id=nav]{}

7.属性选择器 [att~=val]

<h2 class="title sports">标题</h2> —— [class~=sports]{color:blue;}

表示属性里包含了这个值的元素,值以空格分隔。

类选择器为这种属性选择器的特例。.sports{}==[class~=sports]{}

8.属性选择题 [ att |= val ]

<p lang="en-us">Hello!</p> —— [lang |= en]{color:red;}

选择 lang 属性(用于声明语言)为 en 或 en- 开头的元素。用的不多,一般在 lang 属性会用到。

9.属性选择器 [att^=val]

<a href="#html">HTML</a> —— [href^="#"]{color:red;}

选择以某个值开头的元素。如果属性值是一个符号,或者里面包含空格,需要加上引号。

10.属性选择器 [att$=val]

<a href="http://xxx.doc">word文档.doc</a> —— [href$=doc]{color:red;}

选择以某个值结尾的元素。

11.属性选择器 [att*=val]

<a href="http://lady.163.com/15.html">网易女人</a> —— [href*="lady.163.com"]{color:pink;}

选中属性值包含某个值的元素。

12.伪类选择器 

<a href="http://www.163.com">网易首页</a>

仅用于链接(以冒号开头,选中href有值的a标签):

a:link{color:gray;} 未访问过的链接的样式     

a:visited{color:red;}  用户已访问过的链接的样式

可用于其他元素:

a:hover{color:green;}  鼠标停留在元素上时的样式    

a:active{color:orange;} 当用户鼠标点击时的样式

如果这四种状态都想定义,顺序必须为 link-visited-hover-active

input:enabled{color:#ccc;} 元素可用的状态的样式

input:disabled{color:#ddd;} 元素不可用的状态

input:checked{color:red;} 选中的单选框/复选框


li:first-child{color:red;} 选中第一项

li:last-child{color:red;} 选中最后一项

li:nth-child(even){color:red;} 选中偶数项 odd 奇数项

li:nth-child(3n+1){color:red;} n从0开始,选中第3n+1项

li:nth-last-child(3n+1){color:red;} 从最后一项开始,选中第3n+1项

li:only-child{color:red;}  选择每个li元素是它的父级的唯一子元素。

dd:first-of-type{color:red;} 选择第一个这种类型的元素

dt:last-of-type{color:red;} 选择最后一个这种类型的元素

dd:nth-of-type(even){color:red;} 选中为父级的第偶数个的dd元素

dd:nth-last-of-type(2n){color:red;} 选中为父级的倒数第偶数个的dd元素

span:only-of-type{color:red;} 选中父级只有一个某一种类型的元素


不常用伪类:

:empty   选中页面中没有子元素的元素

:root      选中<html></html>根标签

:not()     选中不包含某个选择器的元素,()内为简单选择器

:target   被锚点选中为目标的元素

:lang()   选中lang值为某些特殊值的元素


简单选择器:

tag{}     标签选择器

.className{}      类选择器

#id{}     id选择器

*{}         通配符选择器

[att]{}       属性选择器

:link{}      伪类选择器

简单选择器可进行组合:

img[scr$=jpg]{}       选中 img 标签 + src 值为 jpg 结尾的元素

#banner:hover{}      选中 id 为 banner 元素的 hover 状态

其他选择器

伪元素选择器:为了区别伪类选择器,两个冒号开头

p::first-letter{color:red;}  使第一个字母有特殊样式

p::first-line{color:red;}  使第一行有特殊样式

p::before{content="before";}   在元素内容前插入content中的内容

p::after{content="after";}  在元素内容后插入content中的内容

组合选择器分为后代选择器、自选择器和兄弟选择器

.main h2{color:red;}   后代选择器,选择 .main 中所有的 h2(标题一 标题二)

.main>h2{color:red;}   子选择器,选择父级元素是 .main 的 h2 (标题一)

h2+p{color:red;}  相邻兄弟选择器,选中 h2 后面和它紧邻的 p 元素

h2~p{color:red;}  通用兄弟选择器,选中 h2 后面所有的 p 元素

选择器分组:

h1,h2,h3{color:gray;font-family:sans-serif;}  选择所有 h1,h2,h3 元素,统一样式。

继承、优先级、层叠

1.继承

属性继承:在某个元素上的样式,它里面的子元素可以继承到它的样式。

继承属性:color font text-align list-style ...

非继承属性:background border position ...

每个属性都可以取 inherit 和initial 这两值,如果显式用了 inherit 可把非继承属性变为可继承。

2.优先级

优先级高的样式会覆盖掉优先级低的样式。

计算方法:(从上到下权重降低)

1000—— a:行内样式(写在标签style属性里的样式)

100  —— b:ID选择器的数量

10    —— c:类选择器、伪类选择器和属性选择器的数量

1      —— d:标签选择器和伪元素选择器的数量

一个选择器优先级的值:value=a*1000+b*100+c*10+d

3.CSS层叠

元素的相同的属性会被覆盖:高的优先级覆盖低的优先级,后面覆盖前面

元素不同的属性会合并

最后应用的样式有:color:green,text-align:right,font-weight:bold

CSS 改变优先级:改变先后顺序 提升选择器优先级 {}中加上 !important

选择器兼容性说明:主流浏览器基本都支持,IE 低版本有较多的兼容问题。

3.文本

介绍常用文本属性

字体

1.改变文字大小

font-size:<length>|<percentage>    当属性值为2em,200%时参照父元素font-size

2.改变字体

font-family:[<family-name>|<generic-family>]#

<family-name> 指定具体字体名称

<generic-family> 通用名称,serif | sans-serif 代表一类字体,哪一种字体由浏览器决定。

font-family:arial,Verdana,sans-serif; 优先顺序,优先使用arial字体

3.加粗字体

font-weight:normal | bold | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900

绝大多数字体不支持9等,一般情况下只支持 400 和 700

4.倾斜字体

font-style:normal | italic 绝大多数字体有斜体

5.行距

line-height:normal | <number> | <length> | <percentage>

line-height:3em;==line-height:3; 当 line-height 为 number 时,继承是直接继承,line-height 就是3,字体大小改变行高改变。

line-height:300%; 当 line-height 为 percentage 时,先计算再继承,line-height 成为固定值,字体改变行高不变。

6.字体属性缩写

font : [ <font-style> || <font-weight>] ? <font-size> [ / <line-height>] ? <font-family>

font:20px arail,serif

font:italic bold 20px/1.5 arail,serif;

7.改变文字颜色

color:red;  #ff0000 rgb(255,0,0) rgba(255,0,0,1) rgba(255,0,0,0.5) 

rgba(0,0,0,0)==transparent 全透明

对齐方式

1.文字对齐

text-align:left | right | center | justify

文字居左对齐、居右对齐、居中、两端对齐(自动处理空格)

2.图像垂直对齐

vertical-align:baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length>

默认为 baseline ,父元素的基线;top 为当前行最高点;text-top 为文本最高点;percentage 参照行高;sub 为下标;super 为上标;<length>  20px 以基线为起点往上移动 20px,负数则往下移动。

3.首行缩进

text-indent:<length>|<percentage>

text-indent:2em; 缩进两个字,可为负值表示反方向缩进

text-indent:20%; 参照物为容器(浏览器)宽度

text-indent:-9999px; 隐藏文字

格式处理

1.white-space

white-space:normal | nowrap | pre | pre-wrap | pre-line

normal(把连续空格和换行当作一个空格);pre(有多少空格都承认,回车也承认,不自动卷绕) ;pre-wrap(自动卷绕,承认空格回车);nowrap(不卷绕) ;pre-line(合并空格,保留换行) 

2.让长单词自动换行

word-wrap:normal | break-word

3.让单词的任意两个字母可分开

word-break:normal | keep-all | break-all

文本修饰

1.文字阴影

text-shadow:none | [<length>{2,3}&&<color>?]#

text-shadow:1px 2px 3px #f00; 

x 轴偏移方向 y轴偏移方向 阴影模糊半径 阴影颜色(不写默认为文字颜色)

2.文字标注

text-decoration:none | [underline || overline || line-through ]

高级设置

1.文字的...效果

text-overflow:clip | ellipsis   一定要配合 overflow 和 white-space 属性使用

text-overflow:ellipsis;

overflow:hidden;  溢出时截掉

white-space:nowrap;  不自动换行(卷绕)

2.定义鼠标的形状

cursor:[<url>,]*[auto | default | none | help | pointer | zoom-in | zoom-out | move]

url 可自定义形状,可写多个;auto 为自动处理;default 为普通光标;none 消失;help 为带问号的箭头;pointer 为手型;zoom-in 放大;zoom-out 缩小;move 为移动符号

3.强制继承

color:inherit; 强制改成父元素的值

font-size:inherit; font-family:inherit; font-weight:inherit; font-style:inherit;

line-height:inherit;  text-decoration:inherit;  text-align:inherit;  text-indent:inherit;

white-space:inherit;  word-wrap:inherit;  word-break:inherit;  text-shadow:inherit;

4.盒模型

CSS 盒模型:content=width*height内容  padding内边距  border边框  margin边距

border,padding,margin都有 top,right,bottom,left四部分。

width:<length> | <percentage>  一般情况下只给块级元素设置宽度,当为百分比时,父元素宽度为参照物。max-width min-width  可设置

height: <length> | <percentage>   一般情况下只给块级元素设置宽度,当为百分比时,父元素宽度为参照物。max-height min-height  可设置

padding:[<length> | <percentage>] {1,4} 内边距 TRBL 上右下左 顺时针设置内边距

padding 的值的缩写:

padding:20px;                    ==   padding:20px 20px 20px 20px;

padding:20px 10px;           ==   padding:20px 10px 20px 10px;

padding:20px 10px 30px;  ==   padding:20px 10px 30px 10px;

对面相等,后者省略;4 面相等,只设一个。

margin:[<length>|<percentage>]{1,4}    外边距  TRBL,值缩写与 padding 相同。

margin 合并:毗邻的两个兄弟元素之间的外边距会合并,父元素和其第一个(最后一个)子元素也会发生外边距合并现象。空的块级元素上下外边距合并。

水平居中:margin:0 auto; 浏览器自动平分多余空间使块级元素水平居中。

border:[<border-width>||<border-style>||<border-color>]     边框

border-width:<length>{1,4} 宽度

border-style:[ solid | dashed | dotted ]{1,4} 边框样式

border-color:[<color> | transparent ]{1,4} 默认为字体颜色

border-radius:[<length>|<percentage>]{1,4}[/[<length>|<percentage>]{1,4}]?   圆角边框

x 方向半径 y 方向半径    左上角-右上角-右下角-左下角 border-top-left-radius:5px;

overflow:visible | hidden | scroll | auto    设置盒子中内容超出该如何显示

默认为 visible,超出部分仍然显示        hidden:超出部分隐藏

scroll:出现水平滚动条和垂直滚动条    

auto:内容未超出时无滚动条,超出盒子时显示垂直滚动条

overflow-x,overflow-y 设置水平滚动条和垂直滚动条

box-sizing:content-box | border-box      设置width和height指定宽高的区域

默认为内容区 conent-box,border-box 为外边框区。

box-shadow:none | <shadow>[,<shadow>]*    阴影

<shadow>:inset?&&<length>{2,4}&&<color>?

box-shadow:4px 6px 3px 3px red;  外阴影

水平偏移{向右) 垂直偏移(向下) 模糊半径(1.5px模糊)  阴影大小  阴影颜色(默认为文字颜色)

box-shadow:inset 0px 0px 5px red;   内阴影

box-shadow:3px 3px 5px 2px,inset 0px 0px 5px red; 多阴影

阴影不占空间,起到修饰效果

outline:[<outline-width>||<outline-style>||<outline-color>]     轮廓(border外)

outline-width:<length>

outline-style:solid | dashed | dotted

outline-color:<color>| invert(和当前背景色相反,仅IE及OPera有效)

关于CSS属性的浏览器兼容性,可以通过caniuse查询。

border-radius ie8及以下不支持

box-sizing ie7及以下不支持

box-shadow ie8及以下不支持

outline ie7及以下不支持


5.背景

background-color:<color>  背景颜色 

background-image:<bg-image>[,<bg-image>]*   设置背景图片

<bg-image> = <image> | none

引入image方法:url("http:..163.com/images/x.png")

先写的图片在上层,后引入在下层,背景颜色在最后一层

background-repeat:<repeat-style>[,<repeat-style>]*   平铺背景图片

<repeat-style> = repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}

{1,2}:当有两个值时,第一个表示x轴方向,第二个表示y轴方向

repeat-x | repeat-y  只沿 x 轴(y轴)平铺

space:在图片之间留空隙使得图片正好容下

round:平铺时图片会进行伸缩,完整展现图片

sapce 与 round 效果

background-attachment:<attachment>[,<attachment>]* 页面滚动时背景的状态

<attachment> = scroll | fixed | local   默认为scroll,背景不随内容滚动;local 背景随内容滚动;fixed较少使用。

background-position:<positon>[,<position>]*  改变背景图片位置

<position> = [ left | center | right | top | bottom | <percentage> | <length> ] |

[ left | center | right | <percentage> | <length> ] [ top | center | bottom | <percentage> | <length> ] |

[center | [left | right] [<percentage>|<length>]? ]&&[center | [top|bottom] [<percentage>|<length>]?]

background-position: 10px 20px ; 默认为 0 0,x轴向右偏移10px,y轴向下偏移20px。只有一个值时为 x 轴方向偏移,y 轴默认为 50%,容器的50%处。

linear-gradient() 线性渐变

[ [<angle>|to <side-or-corner>,]?<color-stop>[,<color-stop>]+

<side-or-corner> = [ left | right ] || [ top || bottom ] 默认值为bottom

<color-stop> = <color>[ <percentage> | <length> ]

background-image: linear-gradient(red,blue 20px,red 40px);

background-image: repeating-linear-gradient(red,blue 20px,red 40px); 重复渐变

radial-gradient() 镜像渐变(圆沿半径方向从内向外渐变)

[ [circle || <length>] [at <position>]?, |

[ellipse || [<lengrh> | <percentage>]{1,2} ] [at <position>]?, |

[ [circle | ellipse] || <extent-keyword>] [at <position>]?,| at <position>,

]? <color-stop>[,<color-stop>]+

<extent-keyword> = closest-side | farthest-side | closest-corner | farthest-corner

background: radial-gradient(red,blue);

background-image: repeating-radial-gradient(red,blue 20px,red 40px);

background-origin:<box>[,<box>]*    决定背景图片的坐标区域

<box>:border-box | padding-box | content-box    默认值为padding-box

background-clip:<box>[,<box>]*  裁剪背景图平铺区域

默认值为 border-box

background-size:<bg-size>[,<bg-size>]*   改变背景图大小

<bg-size> = [<length> | <percentage> | auto]{1,2} | cover | contain    默认宽高为原始大小

cover 图片宽高不小于容器,让图片撑满容器

contain 图片宽高不大于容器,以最大形状完整的显示在容器里

cover 和 contain 效果

background:[<bg-layer>,]* <final-bg-layer>

<bg-layer> = <bg-image> || <position> [ /<bg-size>]? || <repeat-style> || <attachment> || <box> || <box>  前一个 box 为 background-origin,后一个为 background-clip。

<final-bg-layer> = <bg-layer> || <'background-color'>  如果给背景加上颜色一定要出现在最后一层

background:url(red.png) 0 0 / 20px 20px no-repeat , 

                    url(blue.png) 50% 50% / contain no-repeat content-box 

                    green;    

content-box 为background-origin 也为 background-clip  green 为背景色

背景的补充说明

本节所讲语法和案例,均以W3规范为准,所有案例在webkit内核的高版本浏览器(如chrome)中测试通过。

部分语法和案例在低版本浏览器(如IE6、IE7、IE8等)中不支持,比如:多背景图、渐变背景、background-size、background-origin、background-clip等。

相关文章

  • 页面制作——CSS 1-5

    1.CSS简介 Cascading Style Sheet 层叠样式表 主要用来定义页面中的表现,HTML 描述页...

  • 网页设计与开发——HTML、CSS、JavaScript (王津

    网页设计与开发——html、css、javascript从网页制作实际出发,除了详细地介绍html页面制作、css...

  • CSS页面布局制作

    搞清概念 一个页面可以看成是由一个表格加上这些表格里的控件组成。 这个表格由几行几列组成,每一行的列数还可能不同。...

  • vue基本知识-3.v-model小实例制作登录页面(v-if

    1、制作登录页面 (1)给一个干净的登录模版aui.css的 aui.css和aui-iconfont.css...

  • 分别从前端、后端、数据库阐述web项目的性能优化

    前端优化:1、减少http请求、例如制作精灵图 2、html和CSS放在页面上部,javascript放在页面下面...

  • 07-学成在线(练习项目)

    1. 学成在线页面制作 目标 理解能够说写单页面我们基本的流程能说出常见的css初始化语句能说出我们CSS属性书写...

  • HTML+CSS零碎知识点

    1、html制作页面的结构,由head和body构成。 2、CSS为页面的显示样式,可以控制页面中的元素的位置,颜...

  • 菜鸟学习笔记:html基础实战操作

    结合所学内容,制作一个简单网站首页 难点: div布局 表单制作 页面实现效果 贴代码 html部分 css部分 ...

  • 学习大纲

    一、知识大纲1、第一周:1)html和css基础知识;2)博雅网站静态页面制作;2、第二周1)小米官网静态页面制作...

  • css

    css:层叠样式展示,用于制作静态页面 css样式分为三大类:行间样式、内部样式、外部样式 行间样式:写在body...

网友评论

      本文标题:页面制作——CSS 1-5

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