CSS

CSS

一、CSS简介

1.1 什么是CSS

  • CSS全称:Cascading Style Sheet 层叠样式表,定义如何显示HTML元素
  • 多个样式可以层层叠加,如果不同的css样式对同一html标签进行修饰,样式有冲突的应用优先级高的,样式无冲突的共同作用

1.2 CSS能干什么

  • 修饰美化html网页
  • 外部样式表可以提高代码复用性从而提高效率
  • html内容与样式表现分离,便于后期维护

1.3 CSS书写规范

CSS规则由两个主要的部分构成:选择器,以及一条或多条声明

  • 选择器通常是我们需要改变的html元素
  • 每条声明由一个属性和一个值组成

1.4 基础语法

选择器{属性:值; 属性:值;......}

h1{color:red; font-size:14px;}

注意事项:

  • 使用花括号来包围声明
  • 如果值为若干单词,则要给值加引号
  • 多个声明之间使用分号来分开
  • css对大小写不敏感,但如果涉及到与html文档一起使用时,class与id名称对大小写敏感

二、CSS导入方式

2.1 内嵌方式

把CSS样式嵌入到html标签当中,类似属性的用法

<div style="color:red;font-size:14px">~示例文本~~~~~</div>

2.2 内部方式

在head标签中使用style引入CSS样式

<head>
    <!-- 告诉浏览器使用css解析器去解析 -->
    <style type="text/css">
        div{color:red;front-size:14px}
    </style>  
</head>
<body>
    <!-- 上面在head中定义了一个元素选择器, 给所有的div元素加上上面定义好的CSS样式 -->
    <div> aaaa </div>
</body>

2.3 外部方式

将CSS样式抽成一个单独的文件,使用者直接引用

Step1:创建单独的css文件div.css

div{color:red;front-size:14px}

Step2:在html中引入div.css文件

<head>
    <link rel="stylesheet" type="text/css" href="div.css"></link>
    <!-- rel: 表示当前页面与href所指定文档的关系
         type: 文件类型, 告诉浏览器使用css解析器去解析
         href: css文件地址 -->
</head>
<body>
    <!-- 在div.css中中定义了一个元素选择器, 给所有的div元素加上上面定义好的CSS样式 -->
    <div> aaaa </div>
</body>

2.4 @import方式

在页面中引入一个独立的单独文件

<head>
    <!-- 引入div.css文件 -->
    <style type="text/css">
        @import url("div.css") 
    </style>
</head>
<body>
    <!-- 在div.css中中定义了一个元素选择器, 给所有的div元素加上上面定义好的CSS样式 -->
    <div> aaaa </div>
</body>

三、CSS选择器

主要用于选择需要添加样式的html元素

3.1 基本选择器

3.1.1 元素选择器

给所有定义了选择器的html元素添加样式

html标签1, html标签2{属性:属性值; ......}

3.1.2 id选择器

给需要修改样式的html元素加上id属性标识,根据id的来选择元素

<head>
    <!-- 定义了一个样式, 该样式只会被加到id="d1"的html元素 -->
    <style type="text/css">
        #d1{color:red;front-size:14px}
    </style>  
</head>
<body>
    <!-- 给该div定义了id -->
    <div id="d1"> aaaa </div>
</body>

3.1.3 class选择器

给需要修改样式的html元素加上class属性标识,根据class的值来选择元素

<head>
    <!-- 定义了一个样式, 该样式只会被加到class="d1"的html元素 -->
    <style type="text/css">
        .d1{color:red;front-size:14px}
    </style>  
</head>
<body>
    <!-- 给该div定义了class -->
    <div class="d1"> aaaa </div>
</body>

与id选择器的区别:class属性可以重复定义,而id不行

<head>
    <style type="text/css">
        .d1{color:red;front-size:14px}
        #d2{color:red;front-size:14px}
    </style>  
</head>
<body>
    <!-- 给该div定义了class -->
    <div class="d1"> aaaa </div>
    <!-- 给该div定义了class -->
    <div class="d1"> bbbb </div>
    
    <!-- 给该div定义了id -->
    <div id="d2"> aaaa2 </div>
    <!-- 错误: 因为id="d2"已经被使用了, 这里不能再用id="d2"来定义该div -->
    <div id="d2"> bbbb2 </div>
</body>

3.2 属性选择器

根据元素的属性及属性值来选择元素

<head>
    <!-- 定义了一个样式, 该样式只会被加到带有href属性且属性值为"www.baidu.com"的html元素
         如果不写属性值, 样式就会被加到所有带有href属性的html元素 -->
    <style type="text/css">
        [href="www.baidu.com"]{color:red;front-size:14px}
    </style>  
</head>
<body>
    <a href="www.baidu.com"> aaaa </a>
    <a href="www.qq.com"> bbbb </a>
</body>

3.3 伪元素选择器

也叫冒号选择器,主要是针对< a>标签

语法:html元素:行为{css属性}

  • 静止状态:没有鼠标碰到的状态。a:link{css属性}
  • 悬浮状态​:鼠标停留在链接时的状态。a:hover{css属性}
  • 触发状态​:鼠标点击链接时,点击按下还没抬起的状态。a:active{css属性}
  • 完成状态​:鼠标点击链接后的状态。a:visited{css属性}
<head>
    <style type="text/css">
        <!-- 静止状态 -->
        a:link{color:blue;}
        <!-- 悬浮状态 -->
        a:hover{color:red;}
        <!-- 触发状态 -->
        a:active{color:green;}
        <!-- 完成状态 -->
        a:visited{color:yellow;}
    </style>  
</head>
<body>
    <a href="www.baidu.com"> 点我吧 </a>
</body>

3.4 层级选择器

语法:父级选择器 子级选择器{css属性}

<head>
    <style type="text/css">
        #div1 .div11{color:blue;}
    </style>  
</head>
<body>
    <div id="div1">
        <!-- 上面定义了父级为id="div1" 子级为class="div11"的一个层级选择器
             这样就只会改变id="div1"下的class="div11"下的样式, 而不会改变其他div的样式-->
        <div class="div11"></div>
        <div class="div12"></div>
    </div>
</body>

四、CSS属性

4.1 文字属性

属性名 取值 描述
font-size 像素值 设置字体大小
font-family 宋体、黑体等 设置字体样式
font-style normal表示正常、italic表示斜体 设置斜体样式
font-weight 100-900数值或者bold表示粗体 粗体样式

4.2 文本属性

属性名 取值 描述
color 十六进制或代表颜色的英文单词 设置文本颜色
text-indent 像素或百分比。5px缩进5像素或20%缩进父容器宽度的百分之20 设置元素中文本的首行缩进
text-decoration none、underline、overline、blink 文本的装饰线
word-spacing normal或像素值 单词间的水平间隔(只对英文有效)
letter-spacing normal或像素值 中文文字间的水平间隔
text-align left、right、center 文本水平对齐方式
line-height normal或像素值 设置文本的行间距
text-shadow 四个取值依次是:阴影水平偏移 阴影垂直偏移 阴影模糊程度 阴影颜色 设置阴影级模糊效果

4.3 背景属性

属性名 取值 描述
background-color 十六进制或代表颜色的英文单词 设置元素的背景色
background-image url('图片路径') 设置元素的背景图片
backgroud-repeat repeat-y、repeat-x、repeat、no-repeat 设置背景图片的平铺方向
backgroud-size 宽度和高度属性或者只设置宽度 改变图像在背景中的大小

4.4 列表属性

属性名 取值 描述
list-style-type disc等 改变列表的标识类型
list-style-image url('图片路径') 用图像表示标识
list-style-position inside;outside 标识出现在列表项内容之外还是内部

4.5 尺寸属性

属性名 取值 描述
width 像素值 设置元素的宽度
height 像素值 设置元素的高度

4.6 显示属性

属性名 取值 描述
display none:不显示、block:块级显示(独立一行)、inline:行级显示(在同一行) 设置元素是否显示以及显示方式

4.7 轮廓属性

属性名 取值 描述
outline-style solid、dotted、dashed等 设置轮廓的样式
outline-color 十六进制或代表颜色的英文单词 设置轮廓的颜色
outline-width 像素值 设置轮廓的宽度

4.8 浮动属性

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框位置。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样(即碰到普通的框不会停下来)

float属性:规定元素向什么方向移动

框1向右浮动,直到碰到包含框才停下来,框2和框3顺势上移

框1向左浮动,碰到框2时不会停下来,直到碰到包含框才停下来,此时看到的现象是框1覆盖掉了框2

如果框1、框2都是浮动框,框1碰到包含框停下来,而框2碰到框1就会停下来,不会覆盖掉框1

如果包含框太窄,无法容纳水平排列的三个浮动元素,name其他浮动框向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其他浮动元素“卡住”

clear属性:规定元素的哪一侧不允许其他浮动元素

取值 描述
left 在左侧不允许浮动元素
right 在右侧不允许浮动元素
both 在左右两侧都不允许浮动元素
none 默认值。允许浮动元素出现在两侧
inherit 规定应该从父元素继承clear属性的值

4.9 定位属性

相对定位(relative):元素框偏移某个距离,元素仍保持其未定位前的状态,它原本所占的空间保留

<head>
    <style type="text/css">
        h2.pos_left {
            position: relative;
            left: -20px;
        }
        h2.pos_right {
            position: relative;
            left:20px;
        }
    </style>
</head>

<body>
    <h2>这是位于正常位置的标题</h2>
    <h2 class="pos_left">这个标题相对其正常位置向左移动</h2>
    <h2 class="pos_right">这个标题相对其正常位置向右移动</h2>
    <p>相对定位会按照元素的原始位置对该元素进行移动</p>
    <p>样式 “left:-20px” 从元素的原始左侧位置减去20像素</p>
    <p>样式 “left:20px” 从元素的原始左侧位置增加20像素</p>
</body>

绝对定位(absolute):元素框从文档流完全删除,并相对于其包含框进行定位。包含框可能是文档中的另一个元素,或者是初始包含框。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样,元素定位后生成一个新的框

<head>
    <style type="text/css">
        h2.pos_abs {
            position: absolute;
            left: 100px;
            top: 150px
        }
    </style>
</head>

<body>
    <h2 class="pos_abs">这是带有绝对定位的标题</h2>
    <p>通过绝对定位,元素可以放置到页面上的任何位置。下面的标题距离页面左侧 100px,距离页面顶部150px</p>
</body>

固定定位(fixed):元素狂的表现类似于将position设置为absolute,不过其包含框是视窗本身

<head>
    <style type="text/css">
        #left {
            width: 200px;
            height:200px;
            backgroud-color: red;
            position: fixed;
            left: 100px;
            top: 100px;
        }
    </style>
</head>

<body>
    <div id="left"></div>
    <!-- 增加很多的换行, 目的是为了创造网页的滚动条 -->
    <br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br>
    <br><br><br><br><br><br><br><br><br><br>
    <p>通过固定定位,无论页面如何滚动,上面定义的div框永远保持在视窗的上边距100px左边距100px的位置</p>
</body>

五、CSS盒子模型

5.1 边框相关属性

属性名 取值 描述
border-style solid、double、dashed、dotted等 设置边框样式
boder-color 十六进制或用于表示颜色的英文 设置边框颜色
boder-width 像素值 设置边框粗细

5.2 外边距相关属性

margin:外边距。边框和边框外层元素的距离

属性名 取值 描述
margin top、right、bottom、left 四个方向的距离
margin-top 像素值 上边距
margin-bottom 像素值 下边距
margin-left 像素值 左边距
margin-right 像素值 右边距

5.3 内边距相关属性

padding:内边距。元素内容和边框之间的距离

属性名 取值 描述
padding top、right、bottom、left 四个方向的距离
padding-top 像素值 上边距
padding-bottom 像素值 下边距
padding-left 像素值 左边距
padding-right 像素值 右边距
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容

  • 一、CSS简介 1、简单介绍 CSS 指层叠样式表 (Cascading Style Sheets),样式定义如何...
    千年幸福论阅读 821评论 0 0
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,055评论 0 1
  • 一、HTML基础标签 1.HTML简介 超文本标记语言(英语:HyperText Markup Language,...
    是阳仔啊阅读 276评论 0 0
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,314评论 2 66
  • CSS 指层叠样式表(Cascading Style Sheets),是一种用来为结构化文档(如 HTML 文档或...
    神齐阅读 2,092评论 0 14