CSS笔记

CSS规则
由两部分构成 
选择器以及一条或多条声明
每条声明由一个属性和一个值组成
ID选择器
为标有特定ID属性的HTML元素指定特定的样式,以#来定义
Class选择器
用于描述一组元素的样式,有别于ID选择器,class可以在多个元素中使用,以 . 显示
注意:
类名的第一个字符不能使用数字
选择器包括: ID选择器、类选择器、元素选择器、属性选择器、包含选择器、子选择器、兄弟选择器
css 中逗号,空格,冒号,点号的含义
一:#a,b{…………}
二:#a b{…………}
三:#a:b{…………}
四:#a.b{…………}
这是四个分别代表着什么含义呢?
一、一个id叫a和一个标签是b的样式
二、一个id叫a下面的一个标签是b的样式
三、一个id叫a的伪类b,例如:a:hover
四、一个id叫a的下面的class叫b的样式
插入样式表的三种方法
1、外部样式表
< head > < link rel = " stylesheet " type = " text/css " href = " mystyle.css " > </ head >
2、内部样式表
< head > < style > hr {color:sienna;} p {margin-left:20px;} body {background-image:url("images/back40.gif");} </ style > </ head >
3、内联样式表(慎用)
<p style="color:sienna;margin-left:20px">这是一个段落。</p>
4、多重样式
如果某些属性在不同的样式表中被相同的选择器定义,那么属性值将从具体的样式表中被继承出来
h3 { color: red ; text-align: left ; font-size: 8 pt ; }
h3 { text-align: right ; font-size: 20 pt ; }
多重样式优先级
(内联样式)Inline style > (内部样式)Internal style sheet >(外部样式)External style sheet > 浏览器默认样式
< head > <!-- 外部样式 style.css --> < link rel = " stylesheet " type = " text/css " href = " style.css " /> <!-- 设置:h3{color:blue;} --> < style type = " text/css " > /* 内部样式 */ h3{color:green;} </ style > </ head >
注意: 如果外部样式放在内部样式的后面,则外部样式将覆盖内部样式。
内联样式 > id 选择器 > 类选择器 = 伪类选择器 = 属性选择器 > 标签选择器 = 伪元素选择器

!important 规则例外

当 !important 规则被应用在一个样式声明中时,该样式声明会覆盖CSS中任何其他的声明
CSS背景
background-color                         背景颜色
background-image                        背景图片
background-repeat                        背景图像是否及如何重复
background-attachment                 背景图片是否固定或随着页面其余部分滚动
         background-position                             背景图像起始位置
文本对齐方式
当text-align设置为"justify",每一行被展开为宽度相等,左,右外边距是对齐
color                           设置文本颜色
direction                      设置文本方向
letter-spacing              设置字符间距
line-height                    设置行高
text-align                      对齐元素中的文本
text-align                     对齐元素中的文本
text-decoration            想文本添加修饰
text-indent                   缩进元素中文本的首行
text-shadow                  设置文本阴影
text-transform              控制元素中的字母
unicode-baidi               设置或返回文本是否被重写
vertical-space                设置元素中空白的处理方式
word-spacing                设置字间距
汉字的间隔调节也是用 letter-spacing 来实现的。
因为中文段落里字与字之间没有空格,因而 word-spacing 通常起不到调整间距的作用。
CSS字体属性
font-family                   指定文本的字体系列
font-size                      指定文本的字体大小
font-style                     指定文本的字体样式
font-variant                  以小型大写字体或正常字体显示文本
font-weight                    指定字体的粗细
链接样式
a :link { color: #000000 ; } /* 未访问链接 */
a :visited { color: #00FF00 ; } /* 已访问链接 */
a :hover { color: #FF00FF ; }  /* 鼠标移动到链接上 */ 
a :active { color: #0000FF ; } /* 鼠标点击时 */
列表属性
list-style             简写属性,用于把所有用于列表的属性设置于一个声明中
list-style-image  将图像设置为列表项标志
list-style-position  设置列表中列表项标志的位置
list-style-type       设置列表项标志的类型
边框属性
dotted               点线边框
dashed              虚线边框
solid                  定义实线边框
double               定义两个边框
groove              定义3 D沟槽边框
ridge                 定义3D脊边框
inset                定义3D嵌入边框
outset              定义3D突出边框

CSS 轮廓(outline)

轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
CSS outline 属性规定元素轮廓的样式、颜色和宽度
分组选择器
h1 { color: green ; } 
h2 { color: green ; } 
p { color: green ; }
为尽量减少代码,可使用分组选择器
h1,h2,p { color:green; }
隐藏元素
 1、 display:none 元素不再占用空间。
 2、 visibility: hidden 使元素在网页上不可见,但仍占用空间
块级元素(block)特性:
总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;
宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;
内联元素(inline)特性:
和相邻的内联元素在同一行;
宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变,就是里面文字或图片的大小;
块级元素主要有:
 address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li
内联元素主要有:
a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,textarea , tt , u , var
可变元素(根据上下文关系确定该元素是块元素还是内联元素):
applet ,button ,del ,iframe , ins ,map ,object , script
CSS中块级、内联元素的应用:
利用CSS我们可以摆脱上面表格里HTML标签归类的限制,自由地在不同标签/元素上应用我们需要的属性。
主要用的CSS样式有以下三个:
display:block  -- 显示为块级元素
display:inline  -- 显示为内联元素
display:inline-block -- 显示为内联块元素,表现为同行显示并可修改宽高内外边距等属性
我们常将所有<li>元素加上display:inline-block样式,原本垂直的列表就可以水平显示了。
CSS Position
static定位
HTML元素的默认值,即没有定位,遵循正常的文档流对象
静态定位的元素不会受到 top, bottom, left, right影响。
Fixed定位
元素的位置相对于浏览器窗口是固定位置
即使窗口是滚动的,它也不会移动
p .pos _ fixed { position: fixed ; top: 30 px ; right: 5 px ; }
relative定位
相对定位元素的定位是相对其正常位置
h2 .pos _ left { position: relative ; left: - 20 px ; } h2 .pos _ right { position: relative ; left: 20 px ; }
absolute定位
绝对定位的元素相对于最近的已定位父元素,如果没有已定位的父元素,那么它的位置相对于<html>
absolute 定位使元素的位置与文档流无关,因此不占据空间。
absolute 定位的元素和其他元素重叠。
sticky定位
粘性定位,依赖于用户的滚动,在   position:relative    position:fixed  定位之间切换。 元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位
元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素
z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)
一个元素可以有正数或负数的堆叠顺序
img { position: absolute ; left: 0 px ; top: 0 px ; z-index: - 1 ; }
CSS overflow 属性用于控制内容溢出元素框时显示的方式。
visible           默认值,内容不会被修剪,会呈现在元素框之外。
hidden          内容会被修剪,并且其余内容是不可见的
scroll            内容会被修剪,但是浏览器会显示滚动条以查看其余的内容
auto             如果内容被修剪,则浏览器会显示滚动条以查看其余的内容
inherit         规定从父元素继承overflow属性的值
清除浮动
.text _ line { clear: both ; }
元素居中对齐
要水平居中对齐一个元素(如 <div>), 可以使用 margin: auto;
设置到元素的宽度将防止它溢出到容器的边缘。
.center { margin: auto ; width: 50 % ; border: 3 px solid green ; padding: 10 px ; }
注意:  如果没有设置  width  属性(或者设置 100%),居中对齐将不起作用。
文本居中对齐
如果仅仅是为了文本在元素内居中对齐,可以使用  text-align: center;
.center { text-align: center ; border: 3 px solid green ; }
图片居中对齐
要让图片居中对齐, 可以使用  margin: auto;  并将它放到    元素中:
img { display: block ; margin: auto ; width: 40 % ; }
垂直居中
.center { padding: 70 px 0 ; border: 3 px solid green ; }
水平和垂直都居中,可以使用  padding    text-align: center :
.center { padding: 70 px 0 ; border: 3 px solid green ; text-align: center ; }
使用line-height垂直居中
.center { line-height: 200 px ; height: 200 px ; border: 3 px solid green ; text-align: center ; } /* 如果文本有多行,添加以下代码: */ .center p { line-height: 1.5 ; display: inline-block ; vertical-align: middle ; }
CSS组合选择符
后代选择器(以空格     分隔)
div p { background-color: yellow ; }
子元素选择器(以大于  > 号分隔)—— 只能选择作为某元素直接/一级子元素的元素
div > p { background-color: yellow ; }
相邻兄弟选择器(以加号  + 分隔)—— 可选择紧接在另一元素后的元素,且二者有相同父元素
div + p { background-color: yellow ; }
普通兄弟选择器(以波浪号   分隔)—— 选取所有指定元素之后的相邻兄弟元素。
div ~ p { background-color: yellow ; }
伪类
a :link { color: #FF0000 ; } /* 未访问的链接 */
a :visited { color: #00FF00 ; } /* 已访问的链接 */
a :hover { color: #FF00FF ; } /* 鼠标划过链接 */ 
a :active { color: #0000FF ; } /* 已选中的链接 */
注意: 在CSS定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。
注意: 在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。
注意:伪类的名称不区分大小写。
选择器匹配作为任何元素的第一个子元素的 <p> 元素:
p:first-child { color:blue; }
选择相匹配的所有<p>元素的第一个 <i> 元素:
p > i:first-child { color:blue; }
选择器匹配所有作为元素的第一个子元素的 <p> 元素中的所有 <i> 元素:
p:first-child i { color:blue; }
伪类与伪元素的不同
伪类选择元素基于的是当前元素处于的状态, 由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。 伪元素是对元素中的特定内容进行操作,它所操作的层次比伪类更深了一层,也因此它的动态性比伪类要低得多。 它本身只是基于元素的抽象,并不存在于文档中,所以叫伪元素。
CSS导航栏
list-style-type:none - 移除列表前小标志。一个导航栏并不需要列表标记
垂直导航栏
a { display: block ; width: 60 px ; }
display:inline; -默认情况下,<li>元素是块元素。在这里,我们删除换行符之前和之后每个列表项,以显示一行。
display:block - 显示块元素的链接,让整体变为可点击链接区域(不只是文本),它允许我们指定宽度
width:60px - 块元素默认情况下是最大宽度。我们要指定一个60像素的宽度
左边是全屏高度的固定导航条,右边是可滚动的内容。
ul { list-style-type: none ; margin: 0 ; padding: 0 ; width: 25 % ; background-color: #f1f1f1 ; height: 100 % ; /* 全屏高度 */ position: fixed ; overflow: auto ; /* 如果导航栏选项多,允许滚动 */ }
水平导航条
在鼠标移动到选项后修改背景颜色
ul { list-style-type: none ; margin: 0 ; padding: 0 ; overflow: hidden ; background-color: #333 ; } 
li { float: left ; } 
li a { display: block ; color: white ; text-align: center ; padding: 14 px 16 px ; text-decoration: none ; }
/* 鼠标移动到选项上修改背景颜色 */ 
li a :hover { background-color: #111 ; }
固定导航条
可以设置页面的导航条固定在头部或者底部:
头部
ul { position: fixed ; top: 0 ; width: 100 % ; }
底部
ul { position: fixed ; bottom: 0 ; width: 100 % ; }
下拉菜单
<style>
/* 下拉按钮样式 */
.dropbtn {
     background-color:  #4CAF50;
     color:  white;
     padding:  16px;
     font-size:  16px;
     border:  none;
     cursor:  pointer;
}
/* 容器 <div> - 需要定位下拉内容 */
.dropdown  {
     position:  relative;
     display:  inline-block;
}
/* 下拉内容 (默认隐藏) */
.dropdown-content  {
     display:  none;
     position:  absolute;
     background-color:  #f9f9f9;
     min-width:  160px;
     box-shadow:  0px 8px 16px 0px rgba(0,0,0,0.2);
}
/* 下拉菜单的链接 */
.dropdown-content a  {
     color:  black;
     padding:  12px 16px;
     text-decoration:  none;
     display:  block;
}
/* 鼠标移上去后修改下拉菜单链接颜色 */
.dropdown-content a:hover  { background-color:  #f1f1f1 }
/* 在鼠标移上去后显示下拉菜单 */
.dropdown:hover .dropdown-content  {
     display:  block;
}
/* 当下拉内容显示后修改下拉按钮的背景颜色 */
.dropdown:hover .dropbtn  {
     background-color:  #3e8e41;
}
</style>
< div  class= "dropdown" >
   < button  class= "dropbtn" > 下拉菜单 < /button >
   < div  class= "dropdown-content" >
     < a  href= "#" > 1 < /a >
     < a  href= "#" > 2 < /a >
     < a  href= "#" > 3 < /a >
   < /div >
< /div >
提示框
<style>
/* Tooltip 容器 */
.tooltip { position: relative; display: inline-block; border-bottom: 1px dotted black; /* 悬停元素上显示点线 */ }
/* Tooltip 文本 */
.tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; padding: 5px 0; border-radius: 6px; /* 定位 */ position: absolute; z-index: 1; }
/* 鼠标移动上去后显示提示框 */
.tooltip:hover .tooltiptext { visibility: visible; }
</style>
< div class = " tooltip " > 鼠标移动到这 < span class = " tooltiptext " > 提示文本 </ span > </ div >
响应式布局
根据屏幕的大小来调整
* { box-sizing: border-box ; } body { font-family: Arial ; padding: 10 px ; background: #f1f1f1 ; } 
/* 头部标题 */
.header { padding: 30 px ; text-align: center ; background: white ; } .header h1 { font-size: 50 px ; } 
/* 导航条 */ 
.topnav { overflow: hidden ; background-color: #333 ; } 
/* 导航条链接 */
.topnav a { float: left ; display: block ; color: #f2f2f2 ; text-align: center ; padding: 14 px 16 px ; text-decoration: none ; }
/* 链接颜色修改 */
.topnav a :hover { background-color: #ddd ; color: black ; } 
/* 创建两列 */ /* Left column */ .leftcolumn { float: left ; width: 75 % ; } 
/* 右侧栏 */ .
rightcolumn { float: left ; width: 25 % ; background-color: #f1f1f1 ; padding-left: 20 px ; } 
/* 图像部分 */
.fakeimg { background-color: #aaa ; width: 100 % ; padding: 20 px ; }
/* 文章卡片效果 */
.card { background-color: white ; padding: 20 px ; margin-top: 20 px ; }
/* 列后面清除浮动 */
.row :after { content: "" ; display: table ; clear: both ; } 
/* 底部 */
.footer { padding: 20 px ; text-align: center ; background: #ddd ; margin-top: 20 px ; } 
/* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
@media screen and (max-width: 800 px ) { .leftcolumn , .rightcolumn { width: 100 % ; padding: 0 ; } } 
/* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */ @media screen and (max-width: 400 px ) { .topnav a { float: none ; width: 100 % ; } }
网页布局
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值