前端 Day2(CSS)

CSS

作用:页面美化和布局控制

概念: Cascading Style Sheets 层叠样式表

形象地说:就相当于样式模板(博客皮肤),做到皮肤与内容解耦。

先复习一下div标签:围堵标签,每一个div占满一整行。<div></div>

CSS的使用:CSS与html结合方式

1. 内联样式(不常用)

在标签内使用style属性指定css代码

如:<div style="color:red;">hello css</div>

2. 内部样式

在head标签内,定义style标签,style标签的标签体内容就是css代码。例如,下面代码里body中的所有div标签内容都会变成蓝色。

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>css内部样式测试代码</title>
    <style>
        div{
              color:blue;
            }
    </style>
</head>
<body>
    <div>hello css</div>
</body>
</html>

总结:在head标签里定义一个style标签写一些css代码,可以控制同一个html文件中的body标签中的内容的样式。

3. 外部样式

另外写一个css资源文件(后缀为css)。然后在需要使用该样式的html文件中,head标签内,定义link标签,导入外部的css资源文件。

如:

写一个a.css的css样式文件:

div{

color:green;

}

然后我们在需要使用这个样式的html文件的head标签内写link标签,在href中写明css资源的地址,引入该css样式:

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>css外部样式测试代码</title>
    <link rel="stylesheet" href="css/a.css">
</head>
<body>
    <div>hello css</div>
</body>
</html>

css语法

格式:(内部样式在head标签里的style标签中写,外部样式直接在css文件中写)

 

选择器 {

属性名1:属性值1;

属性名2:属性值2;

...

}

 

 注意:每一对属性需要使用分号隔开,最后一对属性可以不加分号

选择器:筛选具有相似特征的元素

简单地说,就是指定不同的内容应用不同的样式。分为两大种:

1. 基础选择器

优先级:id最高,类次之,元素最低。同种选择器,后写的覆盖先写的。

优先级的意思就是,同一块内容被多个选择器控制,优先应用id选择器的控制,其次是类,元素。

1. id选择器:选择具体的id属性值的元素.建议在一个html页面中id值唯一(这也是与类选择器的区别)

语法:#id属性值{}

示例代码如下,可以看到id为a的内容被设置为红色,id为b的内容被设置为蓝色。

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>id选择器测试代码</title>
    <style>
        #a{
            color:red;
        }
        #b{
            color:blue;
        }

    </style>
</head>
<body>
    <div id="a">hello css</div>
    <div id="b">hello css</div>
</body>
</html>

效果图:

2. 元素选择器:选择具有相同标签名称的元素,例如div,p等等

语法: 标签名称{}

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>id选择器测试代码</title>
    <style>
        div{
            color:red;
        }
        p{
            color:blue;
        }
    </style>
</head>
<body>
    <div>hello css</div>
    <p>hello css</p>
</body>
</html>

3. 类选择器:选择具有相同的class属性值的元素。多个内容可以有相同的class。

语法:.class属性值{}

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>id选择器测试代码</title>
    <style>
        .a{
            color:red;
        }
        .b{
            color:blue;
        }
    </style>
</head>
<body>
    <div class="a">hello css</div>
    <div class="b">hello css</div>
    <p class="a">hello css</div>
    <p class="b">hello css</div>
</body>
</html>

2. 扩展选择器:

1. 选择所有元素:

语法: *{}

2. 并集选择器:

选择器1,选择器2{}

3. 子选择器:筛选选择器1元素下的选择器2元素

语法: 选择器1 选择器2{}

如下所示,只有div下的p才会被控制

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>子选择器测试代码</title>
    <style>
        div p{        
            color:blue;    
        }
        
    </style>
</head>
<body>
    <div><p>hello css</p></div>
    <p>hello css</p>   
</body>
</html>

4. 父选择器:筛选选择器2的父元素选择器1

语法: 选择器1 > 选择器2{}

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>父选择器测试代码</title>
    <style>
        div>p{        
            color:blue;    
        }
        
    </style>
</head>
<body>
    <div>a
        <p>b</p>
    </div>
    <div>c
        <p>d
            <div>e</div>
        </p>
    </div>
    <p>f
        <div>g
           <p>h</p>
       </div>
   </p>      
</body>
</html>

结果:bdh被控制

 5. 属性选择器:选择元素名称,属性名=属性值的元素(多用于表单)

语法: 元素名称[属性名="属性值"]{}

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>属性选择器测试代码</title>
    <style>
        input[type="text"]{

            border:5px solid;
        }       
    </style>
</head>
<body>
    <input type="text">
    <input type="password">
</body>
</html>

6. 伪类选择器:选择一些元素具有的状态(多用于超链接标签)

语法: 元素:状态{}

如: <a>

状态:

 link:初始化的状态

 visited:被访问过的状态

 active:正在访问状态

 hover:鼠标悬浮状态

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>状态选择器测试代码</title>
    <style>
        a:link{
            color:pink;
        }
        a:hover{
            color:red;
        }
        a:active{
            color:green;
        }
        a:visited{
            color:yellow;
        }
    </style>
</head>
<body>
    <a href="#">状态选择器测试</a>
</body>
</html>

 

属性

1. 字体、文本

font-size:字体大小

color:文本颜色

text-align:对其方式

line-height:行高

2. 背景

background:

3. 边框

border:设置边框,符合属性

4. 尺寸

width:宽度

height:高度

5. 盒子模型:控制布局

margin:外边距

padding:内边距

注意:外边距内边距是一个相对的概念,要看具体视角。

默认情况下内边距会影响整个盒子的大小

box-sizing: border-box; 设置盒子的属性,让width和height就是最终盒子的大小

float:浮动

练习:

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>CSS综合练习:注册页面</title>
    <style>
        /*控制文字无间距*/
        *{
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        body{
            background: url("back.png")  no-repeat center;
        }
        /*设置大框样式*/
        .rg_layout{
            width:900px;
            height:500px;
            border:8px solid #EEEEEE;
            background-color:white;
            margin:auto;/*居中*/
            margin-top: 15px;/*上外边距*/
        }
        /*左块结构*/
        .rg_left{

            float: left;
            padding-left: 10px ;

        }
        /*新用户注册字体样式*/
        .rg_left > p:first-child{
            color:#FFD026;
            font-size:20px;
            margin:15px;
        }
        /*USER REGISTER字体样式*/
        .rg_left > p:last-child{
            color:#A6A6A6;
            font-size:20px;
        }
        /*中块结构*/
        .rg_center{
            float: left;
            width: 450px;

        }
        /*中块表单label文字样式*/
        .td_left{
            width:150px;
            text-align:right;
            height: 45px;            
        }
        /*中块表单rightinput框样式*/
        .td_right{
            padding-left: 50px;           
        }

        #username,#password,#email,#name,#phonenumber,#birthday{
            width: 251px;
            height: 32px;
            border: 1px solid #A6A6A6;
            border-radius: 5px;
            padding-left: 10px; 
        }

        /*提交按钮样式*/
        #btn_sub{
            width: 150px;
            height: 40px;
            background-color: #FFD026;
            border: 1px solid #FFD026;
        }
               
        /*右块结构*/
        .rg_right{
            float: right;
            margin:15px;

        }
        /*已有帐号?立即登录字体样式*/
        .rg_right > p{
            font-size:15px;
        }
        /*立即登录字体样式*/
        .rg_right > p a{
            color:pink;          
        }
      
    </style>
</head>
<body>
    <!--1个大块里面分左中右3个小块-->
    <div class="rg_layout">
        <!--左边-->
        <div class="rg_left">
            <p>新用户注册</p>
            <p>USER REGISTER</p>

        </div>
        <!--中间(表单)-->
        <div class="rg_center">
            <div class="rg_form">
                <form action="#" method="get">
                    <table>
                        <!--第一行:输入用户名-->
                        <tr>
                            <td class="td_left"><label for="username">用户名</label></td>
                            <td class="td_right"><input type="text" id="username" name="username" placeholder="请输入账号"></td>
                        </tr>
                        <!--第二行:输入密码-->
                        <tr>
                            <td class="td_left"><label for="password">密码</label></td>
                            <td class="td_right"><input type="password" id="password" name="password" placeholder="请输入密码"></td>
                        </tr>
                        <!--第三行:输入邮箱-->
                        <tr>
                            <td class="td_left"><label for="email">Email</label></td>
                            <td class="td_right"><input type="email" id="email" name="email" placeholder="请输入Email"></td>
                        </tr>
                        <!--第四行:输入真实姓名-->
                        <tr>
                            <td class="td_left"><label for="name">姓名</label></td>
                            <td class="td_right"><input type="text" id="name" name="name" placeholder="请输入真实姓名"></td>
                        </tr>
                        <!--第五行:输入手机号-->
                        <tr>
                            <td class="td_left"><label for="phonenumber">手机号</label></td>
                            <td class="td_right"><input type="text" id="phonenumber" name="phonenumber" placeholder="请输入手机号"></td>
                        </tr>
                        <!--第五行:选择性别-->
                        <tr>
                            <td class="td_left"><label for="gender">性别</label></td>
                            <td class="td_right">
                                <input type="radio" id="gender" name="gender" value="male" checked><input type="radio" id="gender" name="gender" value="female"></td>
                        </tr>
                        <!--第六行:输入出生日期-->
                        <tr>
                            <td class="td_left"><label for="birthday">出生日期</label></td>
                            <td class="td_right"><input type="date" id="birthday" name="birthday"></td>
                        </tr>
                        <!--第七行:提交-->
                        <tr>
                            <td colspan="2" align="center"><input type="submit" value="注册" id="btn_sub"></td>
                        </tr>
                    </table>        
                </form>            
            </div>
            
        </div>
        <!--右边-->
        <div class="rg_right">
            <p>已有账号?<a href="#">立即登录</a></p>
            
        </div>
    </div>
</body>
</html>

 

posted @ 2021-04-25 16:27  菅兮徽音  阅读(49)  评论(0编辑  收藏  举报