CSS基础

@copyright:wangchao

概要

内联样式表
内部样式表							
内联样式							不推荐

选择器

基础选择器ID选择器>类选择器>标签选择器

<p class="paragraph" id="para1"> Lorem </p>
标签选择器
p{
	color:red;
}
类选择器
.paragraph{
	color:red;
}
ID选择器,id是唯一的
#para1{
	color:red;
}

层次选择器

全局选择器 *
*{
	color:bule;
}
组合选择器
p .firstPar{
	color:green;
}
继承选择器
h1 strong{
	color:bule;
}
子选择器
body>p{
	color:bule;
}
相邻兄弟选择器: 只有一个,相邻(向下)
.active + p{
	color:bule;
}
通用兄弟选择器:当前选中的元素的向下的所有兄弟元素
.active~p{
	color:bule;
}
未访问链接(link)、已访问链接(visited)、激活链接(active)、鼠标停留在连接上(hover)。

image-20201028104031546

伪类选择器

选择ul标签的第一个子元素
ul li:first-child{
	background:##ff0000;
}
选择ul标签的最后一个子元素
ul li:last-child{
	background:##ff0000;
}
定位父元素,选择当前第n个元素
选择当前p元素的父级元素,选中父级元素的第一个,并且是当前元素才生效
p:nth-child(n){
	background:##ff0000;
}
选择父元素,下的p元素的第二个,类型
p:nth-of-type(n){
	background:##ff0000;
}
-----------------------------------------------------------------------
Odd 和 even 是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1)。
在这里,我们为奇数和偶数 p 元素指定两种不同的背景色:
p:nth-child(odd)
{
	background:#ff0000;
}
p:nth-child(even)
{
	background:#0000ff;
}
-----------------------------------------------------------------------
使用公式 (an + b)。描述:表示周期的长度,n 是计数器(从 0 开始),b 是偏移值。
在这里,我们指定了下标是 3 的倍数的所有 p 元素的背景色:
p:nth-child(3n+0)
{
	background:#ff0000;
}
-----------------------------------------------------------------------

属性选择器(常用)

选择包含id属性的元素
a[id]{
	background:#ff0000;
}
选择id等于first的元素
a[id=first]{
	background:#ff0000;
}
选择a标签中class为links的元素
= 绝对等于
*= 包含等于
a[class*="links"]{
	background:#ff0000;
}
^= 以这个开头
a[herf^=http]{
	background:#ff0000;
}
$= 以这个结尾
a[herf$=pdf]{
	background:#ff0000;
}

美化网页元素

1.为什么要美化网页

  1. 有效的传递页面信息
  2. 美化网页,页面漂亮,才能吸引用户
  3. 凸显页面的主题
  4. 提高用户的体验
  • span标签:重点要突出的字,使用span标签套起来

2.字体样式

字体样式
font-family:楷体;
字体大小
font-size:50px;
em(1em等于一个字 体大小的缩进)
字体粗细
font-weight:bold;
字体颜色
color:#a13d30;
-------------------------
font:oblique bolder 12px "楷体";
或者
font:bolder 12px "楷体";

3.文本样式

设置颜色
color:rgba(0,255,255,0.9);
排版:居中
text-align:center;
首行缩进
text-indent:2em;
行高,和 块的高度一致,就可以上下居中
text-height:300px
划线
	下划线
text-decoration:underline;
	中划线
text-decoration:line-through;
	上划线
text-decoration:overline;
超链接去下划线
a{
    text-decoration:none;
}
文本图片水平对齐
img,span{
    vertical-align:middle;
}

4.超链接伪类

鼠标悬浮的颜色
a:hover{
    color:roange;
}
鼠标按住未释放的状态
a:active{
    color:green;
}

5.阴影

文本阴影
	阴影颜色,水平偏移,垂直偏移,阴影半径
text-shadow:#3cc7f5 10px 10px 10px;

6.列表样式

none:去掉圆点
circle:空心圆
decimal:有序列表
square:正方形
list-style:none;
ul li{
    height:30px;
    list-style:none;
    text-indent:1em;
}

7.背景

背景:默认平铺
background-image:url("images/tx.jpg");
水平平铺
background-repeat:repeat-x;
垂直平铺
background-repeat:repeat-y;
不平铺
background-repeat:no-repeat;
---------------------------------------
颜色,图片,图片位置,平铺方式
background-image:red url("images/tx.jpg") 270px 10px no-repeat;

8.渐变


background-color: #D9AFD9;
background-image: linear-gradient(0deg, #D9AFD9 0%, #97D9E1 100%);

盒子模型

外边距

属性设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度
margin:10px 5px 15px 20px;						 上右下左
margin:10px 5px 15px;							 上左右下
margin:10px 5px;								 上下左右
margin:10px;									 上下左右
--------------------------------------------------------
妙用:盒子居中
margin:0 auto;

内边距

padding 简写属性在一个声明中设置所有内边距属性。
padding:10px 5px 15px 20px;						 上右下左
padding:10px 5px 15px;							 上左右下
padding:10px 5px;								 上下左右
padding:10px;									 上下左右

边框

可以按顺序设置如下属性:

  • border-width
  • border-style
  • border-color
  • 如果不设置其中的某个值,也不会出问题,比如 border:solid #ff0000; 也是允许的。
初始化:body总有一个默认的外边距margin:0 常见操作
h1,ul,li,a,body{
    margin:0;
    padding:0;
    text-decoration:none;
}
-------------------------------------------------------------------
border 简写属性在一个声明设置所有的边框属性。
p{
  	border:5px solid red;
}
border-style:
none	定义无边框。
hidden	与 "none" 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
dotted	定义点状边框。在大多数浏览器中呈现为实线。
dashed	定义虚线。在大多数浏览器中呈现为实线。
solid	定义实线。
double	定义双线。双线的宽度等于 border-width 的值。

border-style

border-style:dotted solid double dashed; 		上右下左
border-style:dotted solid double;				上左右下
border-style:dotted solid;						上下左右
border-style:dotted;							上下左右

盒子的计算方法:你这个元素到底多大?

margin + border + padding + 内容宽度

圆角边框

border-radius

左上,右上,右下,左下,顺时针方向
圆圈:圆角 = 半径!
扇形:
div{
    width:100px;
    height:50px;
    margin:30px;
    background:red;
    border-radius:50px,50px,0,0;
}
div{
    width:50px;
    height:50px;
    margin:30px;
    background:red;
    border-radius:50px,0,0,0;
}

盒子阴影

x偏移量,y偏移量,便宜半径,阴影颜色
box-shadow:10px 10px 1px yellow;

浮动

标准文档流

  • 块级元素:独占一行
h1 - h6 p div 列表
  • 行内元素:不独占一行
span a img strong ...

行内元素可以包含在块级元素中,反之则不行

display

块元素
display:block;
行内元素
display:inline;
保持块元素和行内元素的特性
display:inline-block;
消除
display:none;

这个也是一种实现行内元素排列的方式,但是我们很多情况都是用float

float

  1. 左右浮动 float:left; float:rigth;

父级边框塌陷的问题

右侧不允许浮动
clear:right;
左侧不允许浮动
clear:left;
两侧不允许浮动
clear:both;
clear:none;
  • 解决方案:

    1. 增加父级元素高度

      #father{
          border:1px #000 solid;
          height:800px;
      }
      
    2. 增加一个空的div标签,清除浮动

      <div class="clear"></div>
      .clear{
          clear:both;
          margin:0;
          padding:0;
      }
      
    3. overflow

      在父级元素中增加一个  overflow:hidden;
      -----------------------------------------------------
      visible	默认值。内容不会被修剪,会呈现在元素框之外。
      hidden	内容会被修剪,并且其余内容是不可见的。
      scroll	内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
      auto	如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
      inherit	规定应该从父元素继承 overflow 属性的值。
      
    4. 父类增加一个伪类:after(最好的方案)

      #father:after{
          content:'';
          display:block;
          clear:both; 
      }
      

      小结:

      • 浮动元素后面增加新的div

        • 简单,代码中尽量避免空div
      • 设置父元素的高度

        • 简单,元素假设有了固定的高度,就会被限制
      • overflow

        • 简单,下拉的一些场景避免使用
      • 父类增加一个伪类:after(推荐)

        • 写法稍微复杂点,但没有副作用,推荐使用!

对比

  • display

    方向不可以控制

  • float

    浮动起来的话会偏离标准文档流,所以要解决父级塌陷的问题!

定位

相对定位

position:relative;
相对于原来的位置,进行指定的偏移,相对定位的话,它任然在标准文档流中!原来的位置会被保留

top:-20px;
left:20px;
bottom:-10px;
right:20px;

绝对定位

定位:基于xxx定位,上下左右~

  1. 没有父级元素定位的前提下,相对于浏览器定位

  2. 假设父级元素存在定位,我们通常会相对于父级元素进行偏移~

  3. 在父级元素返回内移动

  4. 相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中!原来的位置不会被保留

  5. 方块定位联系

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            #box{
                width: 300px;
                height: 300px;
                padding: 10px;
                border: 2px solid red;
                margin: 0 ;
            }
            a{
                width: 100px;
                height: 100px;
                text-decoration: none;
                background: #E0C3FC;
                line-height: 100px;
                text-align: center;
                color: white;
                display: block;
            }
            a:hover{
                background: #FFDEE9;
            }
            .a2{
                position: relative;
                left: 200px;
                top: -100px;
            }
            .a3{
                position: relative;
                left: 100px;
                top: -100px;
            }
            .a4{
                position: relative;
                top: -100px;
            }
            .a5{
                position: relative;
                left: 200px;
                bottom: 200px;
            }
        </style>
    </head>
    <body>
    <div id="box">
        <a class="a1" href="#">链接1</a>
        <a class="a2" href="#">链接2</a>
        <a class="a3" href="#">链接3</a>
        <a class="a4" href="#">链接4</a>
        <a class="a5" href="#">链接5</a>
    </div>
    </body>
    </html>
    

固定定位

  1. 定死在网页上某个位置

z-index

z-index: 999: 层级

opacity: 0.4 透明度

position: absolute 绝对定位

浮起来,合在一起才可以进行设置层级

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="content">
    <ul>
        <li><img src="image/渐变.png" alt=""></li>
        <li class="tipText">学习Linux</li>
        <li class="tipBg"></li>
        <li>时间:2020-08-16</li>
    </ul>
</div>
</body>
</html>
#content{
    width: 380px;
    padding: 0px;
    margin: 0px;
    overflow: hidden;
    font-size: 12px;
    line-height: 25px;
    border: #000;
}
ul,li{
    padding: 0px;
    margin: 0px;
    list-style: none;
}
/*父级元素相对定位*/
#content ul{
    position: relative;
}
.tipText, .tipBg{
    position: absolute;
    width: 370px;
    height: 25px;
    top: 0px;
}
.tipText{
    color: white;
    z-index: 999;
}
.tipBg{
    background: #000;
    opacity: 0.4;
    filter: alpha(opacity=50);
}

补充

字体

指定的系列名称:具体字体的名称,比如:"times"、"courier"、"arial"。
通常字体系列名称:比如:"serif"、"sans-serif"、"cursive"、"fantasy"、"monospace"
p{
  	font-family:"Times New Roman",Georgia,Serif;
  }
font-size:16px;									设置字体大小
color:颜色									   设置文字颜色
------------------------------------------------------------------------------
font-weight:normal;								设置字重
normal	默认值。定义标准的字符。
bold	定义粗体字符。
bolder	定义更粗的字符。
lighter	定义更细的字符。
-----------------------------------------------------------------------------
font:bold 16px "Times New Roman",Georgia,Serif;

文本格式

文本的对齐方式

文本排列属性是用来设置文本的水平对齐方式。
文本可居中或对齐到左或右,两端对齐.
当text-align设置为"justify",每一行被展开为宽度相等,左,右外边距是对齐(如杂志和报纸)。
h1 {text-align:center;}
p.date {text-align:right;}
p.main {text-align:justify;}

文本转换

文本转换属性是用来指定在一个文本中的大写和小写字母。
可用于所有字句变成大写或小写字母,或每个单词的首字母大写。
------------------------------------------------------------------------------------------
p.uppercase {text-transform:uppercase;}
p.lowercase {text-transform:lowercase;}
p.capitalize {text-transform:capitalize;}

文本缩进

文本缩进属性是用来指定文本的第一行的缩进。
p {text-indent:50px;} 	

文字间距

letter-spacing:1em;								字母之间的间距
word-spacing:2em;								单词间距
image-20201028114010378

外层用一个div包裹整个大的div,从而设置里面div的大小的位置

body{
	background-color:颜色;							网页背景颜色
}
background-color:颜色;							div背景颜色
color:文字颜色
width:80%					 					 设置宽度
margin:auto;									设置水平居中
posted on 2020-11-25 09:22  C_WangFly  阅读(50)  评论(0编辑  收藏  举报