css基础

225 阅读7分钟

css简单介绍

css(层叠样式表)用于页面布局以及样式

格式

选择器{ 属性名:值; }

例:p{ /* 选择器*/
        font-size: 12px; /* 字体大小 */
        color: red; /* 字体颜色 */
    }

注释

格式:/* 注释内容,可跨行*/

添加css方法

1.行内样式

<p style="font-size:12px;color:red;">行内样式</p>

2.内嵌样式

在head标签内添加

<head>
    <style>
        p{
            font-size:12px;
            color:red;
        }
    </style>
</head>

1)每个页面都需要定义

2)适合文件少,样式代码少的情况

3)网站有很多页面,则文件变大,后期维护难度大

3.外部引用样式

<head>
    <link rel="stylesheet" href="css/style.css" />
</head>

1)页面结构html与样式css完全分离,有利于维护

2)样式改变只需改css文件即可

3)同一页面可以引用多个css文件

样式优先级

1.多重样式可以层叠覆盖

2.样式优先级按照“就近原则”

3.行内样式>内嵌样式>引用样式>浏览器默认样式

css选择器类型

1.标签选择器(标签):div...

2.类名选择器(.类名): .logo...

3.id选择器(#id名):#nav...

4.嵌套选择器(标签名 子集):p span...

5.全局选择器:*

6.集体选择器(以上五种选择器任意一个,以上五种选择器任意一个):div,p 表示不同标签拥有的共同样式

7.:nth-child(odd/even)奇偶选择器:li:nth-child(odd) 奇数的li,li:nth-child(even) 偶数的li

混合使用id,class

<p id="one" class="one1 one2 one3">内容</p>

标签id属性有且只有一个值,且页面内不可重复使用,class属性多个使用需要用空格隔开使用。

文本与文字样式

单位

px(像素),em(自动适应所使用的字体,1em表示1字符,2em表示2字符),%(百分比)

颜色

颜色名(英文格式),rgb(0,0,0),rgb(100%,0%,0%),rgba(0,0,0,0)其中a表示透明度,#ffffff十六进制。

文本

属性 描述
color 字体颜色 颜色(颜色名,rgb,rgba,十六进制)
letter-spacing 字符间距 px,em(且可以为负数)
line-height 行高 px,em,%(一般设置为所在行高用来垂直居中)
text-align 水平对齐方式 center,left,right,justify(全行排满)
text-indent 首行缩进 px,em,%(且可以为负数)
text-decoration 装饰线 none(无),overline(上划线),underline(下划线),line-through(删除线)

字体

属性 描述
font 设置字体所用属性 italic bold 12px/2em "微软雅黑"(斜体 加粗 字体大小/行高 采用字体)
font-size 字体大小 px,em,%
font-weight 字体粗细 bold,normal,700
font-style 字体样式 italic(斜体)
font-family 字体 "微软雅黑"

背景

属性 描述
backgorund 背景 颜色 图片 repeat
backgorund-color 背景颜色 颜色名,rgb,rgba,十六进制
backgorund-image 背景图片 url("image/logo.png")
backgorund-repeat 字体样式 no-repeat,repeat,repeat-x,repeat-y

超链接

属性 描述
a:link 未被访问的链接样式
a:visited 被访问过的链接样式(在当前页刷新不会变为未被访问的样式)
a:hover 鼠标移入链接的样式
a:active 被点击时的链接样式

: 表示伪类选择器,a:hover的样式必须放在a:link和a:visited后面且a:active则必须位于a:hover后面,否则不起作用

列表

属性 描述
list-style 列表样式 标志方式 标志位置 列表标志图片(若有列表标志图片则方式不显示,显示的为标志图片)
list-style-image 列表标志图片 url(images/1.png)
list-style-position 列表标志位置 inside(文本内),outside(文本外)
list-style-type 列表标志方式 disc(实心圆),cricle(空心圆)...

表格

属性 描述
width 表格宽度 标志方式 标志位置 列表标志图片(若有列表标志图片则方式不显示,显示的为标志图片)
height 表格高度 px,em,%
border 表格边框 边框宽度 边框样式 边框颜色
border-collapse 表格边框合并 collapse(合并)

布局-盒子模型(元素是什么样)

页面中区域,图片,导航,列表,段落等都可以看成盒子,故页面中的所有元素都可以作为盒子,占据一定空间。

盒子模型组成部分

1.content 内容(width 宽度,height 高度)

2.padding 内边距

3.border 边框

4.margin 外边距

盒子的实际宽度=width+(padding-left)+(padding-right)+(border-left)+(border-right)+(margin-left)+(margin-right);

盒子的实际高度=height+(padding-top)+(padding-bottom)+(border-top)+(border-bottom)+(margin-top)+(margin-bottom);

overflow属性

当内容超出盒子时所采用的属性。

overflow:hidden; 超出部分隐藏

overflow:scoll; 盒子显示滚动条

overflow:auto; 超出盒子显示滚动条,未超出不显示

边框-border属性

盒子的边框。

属性 描述
border 盒子边框 边框宽度 边框样式 边框颜色
border-width 边框宽度 px,em
border-style 边框样式 dashed(虚线),solid(实线)
border-color 边框颜色 颜色名,rgb,rgba,十六进制

内边距-padding 属性

设置浏览器默认设置(内边距,外边距为零):

    *{
        marign: 0;
        padding: 0;
    }
属性 描述
padding 盒子内边距
padding-top 内边距上边距离
padding-right 内边距右边距离
padding-bottom 内边距下边距离
padding-left 内边距左边距离
    padding:10px 20px 15px 25px;
    表示内边距上边距离为10px,内边距右边距离为20px,内边距下边距离为15px,内边距左边距离为25px
    padding:10px 20px 15px;
    表示内边距上边距离为10px,内边距右边距离以及左边距离为20px,内边距下边距离为15px
    padding: 10px 20px;
    表示内边距上边距离以及下边距离为10px,内边距右边距离以及左边距离为20px

外边距-margin 属性

水平居中:

margin:0 auto;

垂直方向外边距会合并,取值大的边距

属性 描述
margin 盒子外边距
margin-top 外边距上边距离
margin-right 外边距右边距离
margin-bottom 外边距下边距离
margin-left 外边距左边距离
    margin:10px 20px 15px 25px;
    表示外边距上边距离为10px,外边距右边距离为20px,外边距下边距离为15px,外边距左边距离为25px
    margin:10px 20px 15px;
    表示外边距上边距离为10px,外边距右边距离以及左边距离为20px,外边距下边距离为15px
    margin: 10px 20px;
    表示外边距上边距离以及下边距离为10px,外边距右边距离以及左边距离为20px

注:盒子内用图片表示列表时,需要设置盒子的font-size:0;(原因:浏览器默认图片会有一个文字的浏览器默认空白距离)

html:
<div id="list">
    <img src="1.png" alt="1" />
</div>

定位(元素在什么位置)

文档流 flow

通过display属性来进行转换

    display:none; /*不显示元素*/
    display:inline;  /* 转换为行内元素,有间距,从左到右输出一行*/
    display:inline-block; /*转换为行内块元素,不独占一行,具有块元素的属性*/
    display:block; /*转换为块元素,独占一行,从上到下输出一行*/

浮动定位 float

脱离文档流

    float:left;/*左浮动*/
    float:right;/*右浮动*/
    float:none; /*不浮动*/
    clear:left; /*清除左浮动*/
    clear:right;/*清除右浮动*/
    clear:both;/*清除左右浮动*/

层定位 layer

精准定位到具体位置

    position:fixed; /*固定定位,位置相对lui浏览器窗口*/
    position:reletive; /*相对定位,位置相对直接父元素,虽然脱离正常文档流,但是原位置还存在*/
    position:absolute; /*绝对定位,位置相对于有position属性且值为reletive或absolute的父元素,脱离文档流,原位置不存在(若一层层找不到position属性的父元素,位置是相对于body定位的)*/
    z-index:99; /*层显示,值越大越在上层,在设置position属性的时候有效*/

设置position属性后,通过改变top,bottom,left,right值来确定位置。

    top:0;
    right:0;
    bottom:0;
    right:0;