前端CSS

如何学习CSS?

  1. CSS是什么?

1.1 什么是CSS?
CSS:Cascading Style Sheet 层叠级联样式表,CSS 表现(美化网页)

1.2 发展史

  • CSS1.0
  • CSS2.0  DIV(块)+CSS,HTML与CSS结构分离的思想,网页变得简单
  • CSS2.1 浮动,定位
  • CSS3.0 圆角,阴影,动画
  1. CSS怎么用? (快速入门)

css代码写在< style>标签中,< link>标签外链css
不分离写法:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css入门</title>
<!--css的style标签推荐写到head中-->
<!--
css选择器
语法:选择器{
		声明;
	}
-->
    <style>
        h1{
            background-color: aqua;
        }
    </style>
</head>
<body>

    <h1>我是一个标题</h1>

</body>
</html>

分离写法(推荐):

h1{
    color: bisque;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css入门(分离写法)</title>
    <link rel="stylesheet" href="css1.css">
</head>
<body>

<h1>我是一个标题</h1>

</body>
</html>

2.1 CSS优势:

  1. 内容和表现分离
  2. 网页结构表现统一,可以实现复用
  3. CSS样式十分丰富
  4. 建议使用独立于html的css文件
  5. 利于SEO,容易被搜索引擎收录

2.2 CSS的三种导入方式:

  1. 行内样式
<!--行内样式-->
<h1 style="color: aqua">我是一个标题</h1>
  1. 内部样式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css入门</title>
<!--css的style标签推荐写到head中-->
<!--
css选择器
语法:选择器{
		声明;
	}
-->
    <style>
        h1{
            background-color: aqua;
        }
    </style>
</head>
<body>

    <h1>我是一个标题</h1>

</body>
</html>
  1. 外部样式 (调用顺序遵循就近原则)
h1{
    color: bisque;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css入门(分离写法)</title>
    <!--外链式-->
    <link rel="stylesheet" href="css1.css">
    <!--导入式-->
      <style>
        @import "css1.css";
    </style>
</head>
<body>

<h1>我是一个标题</h1>

</body>
</html>
  1. CSS选择器(重点+难点)

作用:选择页面上的某一种或某一个元素
3.1. 基本选择器

id选择器>类选择器>标签选择器

  • 标签选择器
  • 类选择器
  • id选择器
<style>
<!--标签选择器-->
    标签名{
    
    }

<!--类选择器-->
    .类名{
    
    }
    
<!--ID选择器-->
     #id名{
    
    }
</style>

3.2. 层级选择器

  • 后代选择器 空格
  • 子选择器 >
  • 相邻兄弟选择器 + 只选择同辈紧邻的下一个
  • 通用选择器 ~ 选择下面所有同辈
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>层级选择器</title>
    <style>
/*后代选择器 选择所有后代中符合条件的*/
        body li{
        font-size: 30px;
        }

    /*子选择器*/
    body>rl{
        font-size: 30px;
    }
    /*相邻兄弟选择器*/
    #pp+p{
        font-size: 30px;
    }
    /*相邻兄弟选择器*/
    #pp~p{
        font-size: 30px;
    }
    </style>
</head>
<body>
<p id="pp">1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<rl>
    <li>
        <p>6</p>
        <p>7</p>
    </li>
</rl>
</body>
</html>

3.3. 结构伪类选择器

  • 在普通选择器后加上:进行具体的判断
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>结构伪类选择器</title>
    <style>
/*选中body儿子中的第一个p标签元素*/
        body>p:first-child{
            color: aqua;
        }
/*选中body儿子中的最后一个p标签元素*/
    body>p:last-child{
        color: red;
    }
/*选择p的父类中的第一个子p*/
        p:nth-child(1){
            color: yellow;
        }
/*选择p的父类中的第二个子p*/
p:nth-last-of-type(2){
    color: yellow;
}
/*超链接伪类选择器hover*/
a:hover{
color: aqua;
}
    </style>
</head>
<body>
<p id="pp">1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<rl>
    <li>
        <a>6</a>
        <a>7</a>
    </li>
</rl>
<p>8</p>
<p>9</p>
<p>10</p>
</body>
</html>

3.4. 属性选择器(常用)
格式:
标签 [属性名 = 属性值 ]{
 }

  • =绝对相等
  • *=包含
  • 可以使用正则规范
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style>
/*name属性为aa的a标签变天蓝色*/
        a[name=aa]{
            color: aqua;
        }

/*href属性包含a的a标签变红*/
        a[href*=a]{
            color: red;
        }

/*href属性以e开头的变绿*/
a[href^=e]{
    color: green;
}
/*href属性以j结尾的变粉*/
a[href$=j]{
    color: pink;
}
    </style>
</head>
<body>
<p>
    <a href="bb" name="aa">1</a>
    <a href="abc">2</a>
    <a href="abcd">3</a>
    <a href="efg">4</a>
    <a href="ehij">5</a>
</p>
</body>
</html>
  1. 美化网页(文字, 阴影,超链接,列表,渐变…)

4.1. 为什么要美化网页?

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

4.2. 字体样式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>字体样式</title>
</head>
<style>
    p{
        font-size: 字体大小;
        font-family: 中文字体样式 (英文字体样式);
        color: 字体颜色;
        font-weight: 字体宽度;
    }
</style>
<body>

<p>我是一个标题</p>
<p>ABCDEFG</p>

</body>
</html>

4.3. 文本样式

  1. 颜色: color rdb rgba
  2. 文本对齐方式: align-content: center;
  3. 首行缩进: align-content: center;
  4. 行高: line-height: 10px;
  5. 装饰: text-decoration-line
  6. 文本对齐方式: vertical-align: middle;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文本样式</title>
    <style>
/*颜色*/
        #p1{
            color: red;
        }
/*文本对齐方式*/
        #p2{
            align-content: center;
        }
/*首航缩进*/
        #p3{
            text-indent: 2em;
        }
/*
行高
line-height:height
*/
        #p4{
            line-height: 10px;
        }
    /*
    文本装饰
    下划线
    */
        #p1 {
            /*中间划线*/
            text-decoration-line:line-through;
        }
        #p2{
            /*上划线*/
            text-decoration-line:overline;
            /*取消划线*/
            text-decoration-line:none;
        }
        #p3{
            /*下划线*/
            text-decoration-line:underline;
        }
/*水平对齐*/
/*两个标签内容对齐*/
        #p4{
            标签1,标签2{
                vertical-align: middle;
            }
    </style>
</head>

<body>
<p id="p1">我最喜欢这句:我看见你酷酷的笑容也有腼腆的时候。</p>
<p id="p2">夏天的风第一次听就觉得会循环-</p>
<p id="p3">“你和萤火虫有两个共同点,在我的眼里都会发光,同时,都已经很多年没见了。”</p>
<p id="p4">叮叮咚咚的声音就像那萤火虫在敲着小鼓,只有你能听见,也只有我能与你共享。清风明月,岁月正好。夜晚的凉风拂过你的面庞,湖边的你眉眼带笑。</p>
<p id="p5">萤火虫是什么样的?很可惜我从来没见过…</p>
</body>
</html>

4.4. 阴影

  • text-shadow:颜色 垂直偏移 竖直偏移 阴影半径

4.5. 超链接伪类

/*超链接伪类选择器hover(常用)*/
a:hover{
color: aqua;
}

4.6.列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表</title>
<!--外链样式-->
    <link rel="stylesheet" href="css12.css">
</head>
<body>
<ul>
    <li>无序列表</li>
    <li>无序列表</li>
    <li>无序列表</li>
    <li>无序列表</li>
    <li>无序列表</li>
</ul>
</body>
</html>
li{
    /*
    列表样式
    none: 无
    circle: 空心圆
    decimal: 数字排序
    square: 正方形
    */
    list-style: none;
}

4.7. 背景background

body{
     /*背景颜色*/
     background-color: aqua;
     /*背景图片*/
     background-image:url("image/a.jpg");
    /*图片布局方式*/
    background-repeat: repeat-x;/*沿着x轴平铺*/
   	/*背景图片可以通过坐标定位*/
    background-position: 10px,1px;
 }

4.8. 渐变

  • 具体css样式可以去开源网站找,此处不多赘述
  1. 盒子模型

5.1.什么是盒子模型?

  • margin 外边距
    -
  • padding 内边距
  • border 边框
    - 边框的粗细
    - 边框的颜色
    - 边框的样式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子模型</title>
    <style>
        #div1{
            /*边框宽窄*/
            border-width:1000px;
            /*边框颜色*/
            border-color: aqua;
            /*边框形式*/
            border: solid;
        }
        h2{
            /*
            外边距
            auto自动对齐
            */
            margin: auto;

            /*上下左右*/
            margin-top: 110px;
            margin-left: 0px;
            margin-right: 0px;
        /*内外边距同理*/
        }
    </style>
</head>
<body>
<div id="div1">
    <form action="#">
        <div>
            <span>用户名</span>
            <input type="text" name="uname">
        </div>
        <div>
            <span>&emsp;</span>
            <input type="password" name="upwd">
        </div>
    </form>
</div>
</body>
</html>

盒子计算方法:margin+border+padding+内容宽度

5.2. 圆角边框

  • 可以用来调各种各样的图像,有些软件的原型头像就是这么调的
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圆角边框</title>
    <style>
        div{
            width: 100px;
            height: 50px;
            border-color: aqua;
            border: 10px;
            border: solid;
        }
        #div1{
            border-radius: 10px;
        }
        #div2{
            /*四角顺时针*/
            border-radius: 10px 20px 10px 20px;
        }
        #div3{
            /*圆的圆角=边框宽度的一半*/
            border-radius: 50px;
        }
        #div4{
            /*半径=长方形的高 ,半圆形 上面两个是圆角 下面两个是方角*/
            border-radius: 50px 50px 0px 0px;
        } 
    </style>
</head>
<body>
<div id="div1">
</div>
<div id="div2">
</div>
<div id="div3">
</div>
<div id="div4">
</div>
</body>
</html>

5.3. 盒子阴影

/*阴影的相关大小面积 颜色*/
box-shadow: 10px 10px 1px yellow;
  1. 浮动

6.1.display 一种行内排列元素的方式但一般用float

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>display</title>
</head>
<style>
    #div1{
        width: 100px;
        height: 50px;
        border-color: aqua;
        border: 10px;
        border: solid;
    }
    a{
        width: 100px;
        height: 50px;
        border-color: aqua;
        border: 10px;
        border: solid;
        /*将行内元素转换成块元素*/
        display: block;
        /*块元素转化成行内元素*/
        display: inline;
        /*即时块元素又是行内元素*/
        display: inline-block;
    }
</style>
<body>
<div id="div1">
<!--块元素-->
</div>
<a>行内元素</a>

</body>
</html>

6.2.float浮动

 float: top;
 float: left;
 float: right;
 float: end;

清除浮动

/*清除两侧浮动,使其既有块元素效果又有浮动效果(可以只清除单侧)*/
 clear: both;
 clear: none;
 clear: left;
 clear: right;

6.3. 父级边框塌陷问题

  • 通俗的说,就是图片外的框框没有把图片完整框住的问题
  1. 增加父级元素的高度

  2. 增加一个空的div,清除浮动

  3. /*若内容超出指定框范围,自动设置滚动条*/ overflow: scroll; 或者overflow: hidden

  4. 在父类添加一个伪类:after,目的是添加一个div那样的空间

父标签:after{
        content: "";
        display: block;
        clear: both;
    }
  1. 定位

7.1 . 相对定位
- 相对于自己原来的位置偏移

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>相对定位</title>
    <style>
        div{
            width: 100px;
            height: 50px;
            border-color: aqua;
            border: 10px;
            border: solid;
        }
        h2{
            /*相对原位置定位*/
            position: relative;
            top: 10px;
            right: 10px;
        }
    </style>
</head>
<body>
<div>
    <h2>喵喵喵</h2>
</div>
</body>
</html>

7.2. 绝对定位
- 没有父级元素的时候相对浏览器的边框定位 当父级元素已经定位时则相对于父级元素定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>绝对定位</title>
    <style>
        div{
            width: 100px;
            height: 50px;
            border-color: aqua;
            border: 10px;
            border: solid;
            position: relative;
            top: 10px;
            right: 10px;
        }
        h2{
            /*
            绝对定位
            没有父级元素的时候相对浏览器的边框定位
            当父级元素已经定位时则相对于父级元素定位
            */
            position: absolute;
            top: 10px;
            right: 10px;
        }
    </style>
</head>
<body>
<div>
    <h2>喵喵喵</h2>
</div>
</body>
</html>

7.3. 固定定位

/*固定定位,无论如何滑动页面始终在一个位置*/
            position: fixed;
            top: 10px;
            right: 10px;

7.4. z-index

  • z-index:数字,数字越大就越容易显现
  • opacity:数字,背景透明度
  1. 网页动画(特效效果)[略]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值