CSS

CSS

CSS引入方式:三种

  • 内联: 在style属性中添加样式代码 不能复用
<!-- 内联样式在标签里添加style属性 -->
<h1 style="color: blue">内联样式1</h1>
  • 内部: 在head标签里面添加style标签 可以当前页面复用
<style type="text/css">
	  h2{
	       color: red;
	   }
</style>
  • 外部: 在单独的css文件中写样式代码 在html页面中通过link标签引入 可以多页面复用
<!-- 引入css文件 -->
<link rel="stylesheet" type="text/css" href="./index.css">

引入方式的优先级: 内联最高 内部外部一样 后执行覆盖先执行的

  

选择器

  1. 标签名选择器
    格式: 标签名{样式代码}
p{
     color: green;
}
  1. id选择器
    格式: #id{样式代码}
    当需要选择页面中的某一个标签时使用
#h2_1{
    background-color: purple;
}
  1. 类选择器
    格式: .class{样式代码}
    当需要选择页面中的某一类标签时使用
.className{
    color: yellow;
}
  1. 分组选择器
    将多个选择器合并成一个(用逗号隔开)
    格式: div,.className,#id{样式代码}
div,.className,#id{
	color:red;
}
  1. 属性选择器
    格式: 标签名[属性名=‘值’]{样式代码}
input[type='text']{
   background-color: green;
}
  1. 后代选择器
    格式: div p{样式代码} 选择div里面的所有p(包括子元素及所有后代)用空格隔开
body div p{
    color: red;
}
  1. 子代选择器
    格式: div>p{样式代码} 选择div里面的p子元素
body>div>p{
    background-color: blue;
}
  1. 伪类选择器
    选择的是元素的状态
    有哪些状态?
    悬停状态 点击状态 访问过状态 未访问状态
    格式: a:visited/link/hover/active{样式代码}
/* 访问后 */
a:visited{
    color: red;
}
/* 未访问 */
a:link{
    color: yellow;
}
/* 悬停 */
a:hover{
    color: blue;
}
/* 点击 */
a:active{
    color: green;
}
  1. 通用选择器
    格式: *{样式代码}
*{
	color:red;
}

  

颜色的赋值方式

  • 三原色:红绿蓝 rgb 每个颜色取值范围0-255
  1. 可用颜色单词 red/green/blue…
  2. 6位16进制赋值 #0000ff;
  3. 3位16进制赋值 #00f;
  4. 3位10进制赋值 rgb(255,0,0);
  5. 4位10进制赋值rgba(x,x,x,x) a = alpha透明度 取值0-1
h1{
	color: rgba(0,0,255,0.2);
}

   

背景图片

div{
    width: 300px;
    height: 300px;
    background-color: pink;
    /* 设置背景图片 */
    background-image: url(./images/index.jpg);
    /* 设置背景图片尺寸 */
    background-size: 100px 100px;
    /* 禁止平铺 */
    background-repeat: no-repeat;
    /* 设置背景图片位置 横向百分比和纵向百分比 */
    background-position: 100% 0%;
}

   

元素显示方式display

  • block: 块级元素的默认值,特点:独占一行,可以修改宽高, 包括:h1-h6,p,div
  • inline: 行内元素的默认值,特点:共占一行,不能修改宽高,包括:span,b,i,small
  • inline-block:行内块,特点:既能修改宽高,也共占一行 包括:img
       

盒子模型

  • 盒子模型=宽高+外边距+边框+内边距
  • 宽高:负责控制元素的显示大小
  • 外边距:负责元素的显示位置
  • 边框:负责边框
  • 内边距: 负责控制元素内容的位置

盒子模型之宽高

  • 赋值方式: width、height 两种赋值方式:1. 像素 2. 上级元素百分比
  • 块级元素可以修改宽高,行内元素不能修改宽高

盒子模型之外边距margin

  • 外边距: 元素距上级元素或相邻兄弟元素的距离
  • 赋值方式:
    margin-left/right/top/bottom:10px;
    margin:10px; 四个方向
    margin:10px 20px; 上下10 左右20
    margin:10px 20px 30px 40px; 上右下左(顺时针)
  • 粘连问题: 当元素的上边缘和上级元素的上边缘重叠时,给元素添加上外边距,会出现显示异常,通过给上级元素添加overflow:hidden解决(给上级元素添加边框也可)
  • 添加边框也能避免粘连问题 但是不一定适用,如果有些元素就是没有边框,不能改变原有显示效果

盒子模型之边框

  • 赋值方式:
    border: 粗细 样式 颜色;
    border-left/right/top/bottom:粗细 样式 颜色;
  • 圆角
    border-radius: 10px; 值越大越圆 当值为宽高一半时为正圆
div{
	 width: 100px;
	 height: 100px;
	 /*
	 solid 实线
	 dotted 点线
	 dashed 虚线
	 double 双线
	  */
	 /*单独设置某一条边的边框 一般起到分割线的作用*/
	 /*border-left: 5px solid #f00;*/
	 border: 1px solid #f00;
	 /* 设置圆角(值越大越圆,当值为宽高一半时正圆) */
	 border-radius: 5px;
}

盒子模型之内边距padding

  • 内边距: 元素内容距离元素边缘的距离

  • 赋值方式和外边距一样
    padding-left/right/top/bottom:10px;
    padding:10px;四个方向
    padding:10px 20px; 上下和左右
    padding:10px 20px 30px 40px ;上右下左

  • 内边距会影响元素的宽高

div{
	/* 最初width,height都是200的,内边距加了50,相应的宽高就要减50 */
	width: 150px;
	height: 150px;
	border: 1px solid #00f;
	/* 内边距会影响元素的宽高 */
	padding-left: 50px;
	padding-top: 50px;
}

   

文本相关

  • 水平对齐方式: text-align:left/right/center;
  • 文本修饰: text-decoration: overline/underline/line-through/none;
  • 文本阴影:text-shadow : 颜色 x偏移值 y偏移值 浓度
  • 行高: line-height:20px;
  • 字体大小: font-size:30px;
  • 加粗: font-weight:bold/normal;
  • 斜体: font-style:italic;
  • 字体: font-family:xxx,xxx,xxx;
div{
    width: 100px;
    height: 100px;
    border: 1px solid #00f;
    /* 文本水平对齐方式 */
    text-align: center;
    /* 文本修饰(上划线overline,下划线underline,删除线line-through) */
    text-decoration: line-through;
    /* 文本阴影 (颜色 x偏移值px y偏移值px 浓度px-值越小越清晰)*/
    text-shadow:#f00 10px 10px 2px;
    /* 行高 可以实现文本上下居中(将行高设置为元素的高即可) */
    line-height: 100px;
    /* 字体大小 */
    font-size: 20px;
    /* 字体粗细 加粗bold/normal(去掉加粗) */
    font-weight: bold;
    /* 字体风格 italic斜体 normal文本正常显示 oblique文本倾斜显示 */
    font-style: italic;
    /* 字体设置(通常字体系列名称:比如:"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace")
    可设置多个,哪个能用就用哪个 */
    font-family: cursive,serif,sans-serif,fantasy,monospace;

}

   

CSS的三大特性

  1. 继承: 元素可以继承上级元素的文本相关样式,元素自身所带效果不受继承影响,比如:超链接a标签的字体颜色,h1-h6自带的字体大小
  2. 层叠性: 多个选择器有可能选择同一个元素,如果添加的样式不同则全部层叠生效,如果添加的样式相同 则由选择器的优先级决定
  3. 优先级: 指的是选择器的优先级,作用范围越小优先级越高, id>class>标签名>继承(间接选中)

   

CSS的定位方式:

静态定位(文档流定位)

  • 格式: position:static(默认);
  • 特点: 块级元素从上往下排列 行内元素从左向右排列
  • 通过外边距 移动元素

相对定位

  • 格式: position:relative
  • 特点: 元素不脱离文档流(不管元素移动到哪里 原来的位置一直占着 占位)
  • 元素通过 left/right/top/bottom 相对于元素的初始位置做位置偏移
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定位:相对定位</title>
    <style type="text/css">
        div{
            width: 100px;
            height: 100px;
            border: 1px solid #00f;
        }
        div:hover{
            position: relative;
            top:30px;
            left: 30px;
        }
    </style>
</head>
<body>
    <div id="d1">div1</div>
    <div>div2</div>
    <div>div3</div>
</body>
</html>

绝对定位

  • 格式: position:absolute
  • 特点:元素脱离文档流
  • 元素通过left/right/top/bottom相对于窗口或某一个上级元素(需要在上级元素中添加相对定位做位置偏移
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定位:绝对定位</title>
    <style type="text/css">
        /*
         相对于窗口做偏移)
         */
        div{
            width: 100px;
            height: 100px;
        }
        #div1{
            background-color: #f00;
        }
        #div2{
            background-color: #0f0;
            /* 绝对定位 */
            position: absolute;
            top: 0;
            left: 0px;
        }
        #div3{
            background-color: #00f;
        }
    </style>
</head>
<body>
    <div id="div1">div1</div>
    <div id="div2">div2</div>
    <div id="div3">div3</div>
</body>
</html>

固定定位

  • 格式: position: fixed;
  • 特点: 元素脱离文档流
  • 元素通过left/right/top/bottom相对于窗口做位置偏移
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定位:固定定位</title>
    <!-- 固定定位:position:fixed
        元素脱离文档流。
        相对于窗口做位置偏移
     -->
     <style type="text/css">
        div{
            width: 100%;
            height: 100px;
            background-color: #f00;
            /* 固定定位 */
            position: fixed;
        }
        #d2{
            width: 50px;
            height: 200px;
            background-color: #00f;
            position: fixed;
            right: 30px;
            bottom: 30px;
        }
     </style>
</head>
<body>
    <div id="d1"></div>
    <div id="d2"></div>
    <img src="../imgs/a.jpg">
    <img src="../imgs/b.jpg">
    <img src="../imgs/c.jpg">
</body>
</html>

浮动定位

  • 格式: float:left/right;
  • 特点: 脱离文档流,元素从所在行向左或向右浮动,当撞到上级元素边框或其他浮动元素时停止。
  • 如果一行装不下会自动换行,换行时有可能被卡住
  • 如果元素的所有子元素全部浮动,则自动识别的高度为0,给元素添加overflow:hidden。
  • 应用场景: 当需要将纵向排列的元素改成横向排列时使用浮动定位
  • 通过外边距 移动元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>浮动</title>
     <style type="text/css">
         body>div{
            width: 200px;
            border: 1px solid #f00;
            /* 解决高度识别为0的问题 */
            overflow: hidden;
         }
         #d1{
            width: 50px;
            height: 50px;
            background-color: #f00;
            float: left;
         }
         #d2{
            width: 50px;
            height: 50px;
            background-color: #0f0;
            float: left;
         }
         #d3{
            width: 50px;
            height: 50px;
            background-color: #00f;
            float: left;
         }
     </style>
</head>
<body>
    <div>
        <div id="d1"></div>
        <div id="d2"></div>
        <div id="d3"></div>
    </div>
</body>
</html>

溢出设置

  • visible(默认)超出显示
  • hidden 超出隐藏
  • scroll 超出滚动条显示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值