day--14前端(HTML、CSS)

    浏览器相当于客户端,浏览器访问服务端,收到消息之后里面断开,一次请求,一次响应,一次断开。

    Web框架本质    http://www.cnblogs.com/wupeiqi/articles/5237672.html

    众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

#!/usr/bin/env python
#coding:utf-8

import socket

def handle_request(client):
    buf = client.recv(1024)
    client.send(b"HTTP/1.1 200 OK

")
    client.send(b"Hello, Seven")

def main():
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind(('localhost', 8000))
    sock.listen(5)

    while True:
        connection, address = sock.accept()
        handle_request(connection)
        connection.close()

if __name__ == '__main__':
    main()

    上面,我们启动程序,在浏览器空白窗口输入localhost:8000,则会收到Hello,Seven的消息。

    为什么网址都是有各种格式和颜色的,我们上面显示的只是简答的hello,Seven,现在我们让服务器断发送不一样的信息,如下:  

client.send(b"<h1 style='background-color:red;'>Hello wrold</h1>")

    此时,刷新浏览器,收到的消息如下:

    Hello wrold

    此时,字体是<h1></h1>段落的形式,背景颜色是红色,这是由于我们发送给浏览器的是浏览器识别的格式,能够进行格式的转换。

    HTML架构:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

    上面HTML是借助工具pycharm自动创建的html文件,是HTML的基本格式,<!DOCTYPE html>声明HTML文件

    <html lang="en">                     #lang="en"标签内部的属性lang="en"

    <head></head>                        #头部

    <body></body>                       #身体

    </html>

    注释<!--  message -->

    <head></head>里面的标签

    -<meta> charset="UFT-8"设置字符格式,防止中文乱码,默认utf-8可变长度的Unicode编码。

    -<title>标题</title>

    Meta(metadata information)

    提供有关页面的元信息,例:页面编码,刷新,跳转,针对搜索引擎合更新频度的描述合关键词

    1.页面编码(告诉浏览器是什么编码)

    <meta http-equiv="content-type" content="text/html;charset="utf-8">

    2.刷新和跳转

    <meta http-equiv="refresh" content="2">  默认两秒刷新一次网页,设置默认刷新<meta http-equiv="refresh" content="2">

    间断一段时间跳转:

    <meta http-equiv="refresh" content="3;Url=http://baidu.com">     3秒钟之后跳转到百度的页面

    <meta>这种跳转很少用,紧急的时候使用。

    3.关键字

    <meta name="kewwords" content="星际,老男孩,Alex,专访,苍老师">

    4.描述

<meta name="description" content="京东JD.COM-专业的综合网上购物商城,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等数万个品牌优质商品.便捷、诚信的服务,为您提供愉悦的网上购物体验!" />
  <meta name="Keywords" content="网上购物,网上商城,手机,笔记本,电脑,MP3,CD,VCD,DV,相机,数码,配件,手表,存储卡,京东" />

    <meta name="description" content="对网站的用途做简单的介绍,搜索引擎所搜到之后,会展示,告诉用户网站的用途" />

    5.X_UA-Compatible   兼容性,现在浏览器都不支持IE6低版本,IE6是微软自定义的代码,现在通用HTML,不在支持低版本,需进行说明

    <meta http-equiv="X-UA-Compatible" content="IE=IE9;IE=IE8;" />   最先支持IE9,不兼容使用IE8

    6.<link>标签

     (1)、可以指定标题图片,比如每个标签旁边都有一个官方的图片,天猫,京东(JD)标志等,如下:

        <link rel="shortcut icon" href="//common.cnblogs.com/favicon.ico" type="image/x-icon" />              #指定显示图标

    二、<body></body>标签

    (1)特殊符号

    &nbsp代表空格,&gt代表>号,&lt代表小于号(<)

    网络特殊符号地址:http://www.cnblogs.com/web-d/archive/2010/04/16/1713298.html

    (2)<p></P>标签

        <p>标签段落,<br/>标签用来换行

     (3)<h系列标签></h>

        <span><h><p><br>标签简单练习,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://www.baidu.com">李&nbsp;&nbsp;&nbsp;&gt;&lt;杰</a>
    <p>我是一直小小鸟,想要飞也肺部高,天高皇帝眼,老子相干啥就干涉,人生路,漫漫遥,想做的事情要趁早,其实,真的,养个儿子有撒谎用</p>
    <p>人生无常,要注意自己的身体,身体是革命的本钱,主要保护好自己的身体,才是最主要的,很多事情看开店,什么样儿放老,都是家的<br />
        很多事情都是骗人的,趁着年轻,多学点东西吧,莫让人生后悔,为了家人,多做点贡献,人生就是这样,要开心点,自然点
    </p>
    <h1>第一段</h1>
    <h2>第二段</h2>
    <h3>块内标签有自己的属性</h3>
    <h4>行内标签,比如&ltspan&gt没有自己的属性,是一个白板,需要自己定义</h4>

    <span>行内标签,都显示在一行,不会主动换行,额外其他功能</span><span>是吗,验证一下</span><span>Hello the world</span>
</body>
</html>

     <input>系列标签

    <input type="text">                                                                                          #普通的文本框

    <input type="password">                                                                                 #输入密码,隐藏是输入

    <input type="button" value="登录">                                                               #登录按钮,登录数据提交哪里了,默认button没用,使用submit

    <input type="submit" vlaue="登录">                                                               #提交按钮,数据提交到哪里去了呢?

    button和submit只是按钮,要想数据能够提交,必须嵌套在form标签里面<form></form>标签

    <form></form>标签,里面有属性action,表示,把这个表单提交到哪里。<inputt>标签要与<from></form>标签结合使用。

    <form action="url"></form>

    <form action="rul">里面action属性,是指定提交到哪里?指定提交的位置。<form></form>表单可以有好几个,指定提交给那个表单。

    <input type="text" name="user">里面的name属性,是指定提交数据的名字,<input>标签向后台提交数据,一定要加上name属性。

    <form method="POST">里面还有method属性,指定按什么方式进行提供,GET和POST方法。

    GET和POST方法有什么区别呢?

    GET方法

    http://localhost:8888/index?user=asfdasf&email=asdgasgf&pwd=asgdagassgda

    会把提交的消息拼接到url上面,然后发送给服务器

    POST方法:

    http://localhost:8888/index

    POST方法不会拼接,直接发送到web服务端,http提交数据会发送两部分信息,内容和头。

    GET和POST提交的方法没有区别,抓包都能获取到,体现形式不一样。

    写一个HTML代码,向sougou后台提交数据,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="https://www.sogou.com/web">
        <input type="text" name="query" />
        <input type="submit" name="搜狗搜索" />
    </form>
</body>
</html>

    上面HTML代码能把输入的数据提交到搜狗搜索的后台,我们使用搜狗搜索的时候,看HTML代码,如下:

    https://www.sogou.com/web?query=%E8%80%BF%E9%95%BF%E5%AD%A6&_asf=www.sogou.com&_ast=&w=01015002&p=40040108&ie=utf8&from=index-nologin&s_from=index&oq=&ri=0&sourceid=sugg&suguuid=&sut=0&sst0=1506867616147&lkt=0%2C0%2C0&sugsuv=1506866777629189&sugtime=1506867616147

    从上面可以看出,搜狗搜索的<input>属性name="query",这样,我们就可以写一个简单HTML向https://www.sogou.com/web提交数据,搜狗采用的是GET方法向后台提交数据。

    <input type="text" name="user" value="alex">标签里面,name向后台提交数据,必须有name属性,value属性是默认值。

    单选框,我们知道,注册网站的时候,经常让我们选择男女,两者是互斥的,要么是男,要么是女,没有第三个选项,而别不可能两者都选,如何实现互斥,如下,只要让name属性的值一样即可,因为name是指定提交给谁,这样就能唯一指定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <div>
            <p>请选择性别:</p>
            男:<input type="radio" name="gender"/>           #指定相同的name属性,以实现互斥的效果
            女:<input type="radio" name="gender"/>           #指定相同的name属性,以实现互斥的效果
            Alex:<input type="radio" name="gender"/>         #指定相同的name属性,以实现互斥的效果
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

    上面HTML代码中,name属性都是一样的,那如何让后台知道,用户选择的是男还是女,不能确定男女,造成混乱,如何解决的,加一个value属性,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <div>
            <p>请选择性别:</p>
            男:<input type="radio" name="gender" value="1"/>          #通过设置value属性,进行区分  男gender=1
            女:<input type="radio" name="gender" value="2"/>          #通过设置value属性,进行区分  女gender=2
            Alex:<input type="radio" name="gender" value="3"/>        #通过设置value属性,进行区分 人妖gender=3
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

    上面,我们设置了value属性,现在选择不同的性别,然后提交,如下:

男:http://localhost:63342/day13/s1/s5.html?gender=1
女:http://localhost:63342/day13/s1/s5.html?gender=2
Alex:http://localhost:63342/day13/s1/s5.html?gender=3

    上面代码中,我们通过设置value属性值,让gender=1、2、3以便能够确认男女。

    复选框:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form enctype="multipart/form-data">
        <div>
            <p>请选择性别:</p>
            男:<input type="radio" name="gender" value="1" checked="checked"/>
            女:<input type="radio" name="gender" value="2"/>
            Alex:<input type="radio" name="gender" value="3"/>
            <input type="submit" value="提交" />
            <p>爱好:</p>
            篮球:<input type="checkbox" name="favor" value="1"/>                  #复选框,checkbox,name是后台取数,value是区分那个爱好
            足球:<input type="checkbox" name="favor" value="2"/>                  #复选框,checkebox,name是属性指定后台名字,value是告诉后台那个指令
            皮球:<input type="checkbox" name="favor" value="3"/>
            台球:<input type="checkbox" name="favor" value="4"/>
            网球:<input type="checkbox" name="favor" value="5"/>
            <br />
            <input type="submit" value="提交" />
            <p>上传文件:</p>
            <input type="file" name="fname"/>
            <!-- name属性是指定上传到那个地方,取得时候直接取就可以-->
            <input type="submit" value="提交" />
            <p>重置,我们经常看到很多网站,如果用户输入有无,不需要全部去除,秩序重置即可</p>
            <input type="reset" value="重置"/>    <!-- reset是重置,重置上面form输入的信息,重新输入-->
        </div>
    </form>
</body>
</html>

    <textarea>默认值<textarea>标签,多行文本输入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="http://baidu.com">
        <textarea name="mess">默认值</textarea>    #多行文本输入,可以输入多行文本数据
        <!-- 提交给后台,需要name属性,这样才能提交给后台,默认值放中间 -->
        <input type="submit" value="提交" />
    </form>
</body>
</html>

    <select><option></option></select>下拉框选项

    在select里面定义name属性,指定提交名称,在option里面指定value属性,区分不同选项 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <div>
            <select name="city">                                #定义城市名字city,告诉web提交到哪里
                <option value="1">北京</option>                  #定义value属性,区分不同的城市
                <option value="2">上海</option>
                <option value="3">郑州</option>
                <option value="4">长沙</option>
            </select>
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

    上面城市只能单一选择,如果向同时选中两个提交到后台,如何选择呢,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <div>
            <select name="city" multiple="multiple" size="1">
                <!-- multiple是多选框multiple="multiple"指定多选,size="10"规定多选框的长度 -->
                <option value="1" selected="selected">北京</option>
                <!-- selected=selected默认是被选中 -->
                <option value="2">上海</option>
                <option value="3">郑州</option>
                <option value="4">长沙</option>
            </select>
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

    层级下拉框:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form>
        <div>
            <select name="city">                                  #设置select标签的name属性,告诉后台属性名
                <optgroup label="河南省">                          #指定上一级标签名label="标签名"
                    <option value="1">郑州</option>               #设置城市
                    <option value="2">南阳</option>
                    <option value="3">洛阳</option>
                    <option value="4">开封</option>
                </optgroup>
                <optgroup label="湖南省">
                    <option>长沙</option>
                    <option>益阳</option>
                    <option>娄底</option>
                    <option>岳阳</option>
                </optgroup>
            </select>
            <input type="submit" value="提交" />
        </div>
    </form>
</body>
</html>

    <optgroup>标签隶属于<select>标签,只有在<select>标签里面才可以使用,并且只能定义一次。

    <a href="url" target="">a标签有两个用途:(1)超链接;(2)锚(文档内跳转到某一个地方)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://baidu.com">百度</a>                        #a标签,跳转到某一个地方
</body>
</html>

    a标签里面有个target属性,默认,我们正常点击进去之后,会在当前页显示超链接的网址信息,target="_blank",是重新打开一个新的网页;target="_parent"默认是在当前页打开超链接的网址;target="_self"也是默认当前页打开超链接;

    a标签当锚使用,在当前也内做跳转,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <a href="#i1">第一章</a>                                     #href超链接,链接当前网页的信息,#号i1关联下面出现i1的id,当前网页的链接
        <a href="#i2">第二章</a>                                     #href链接当前网页,并且id不能重复           
        <a href="#i3">第三章</a>
        <a href="#i4">第四章</a>
        <div id="i1" style="height:700px;">第一章的内容</div>         #id超链接使用,并且每个div标签里面的id不能重复
        <div id="i2" style="height:700px;">第二章的内容</div>
        <div id="i3" style="height:700px;">第三章的内容</div>
        <div id="i4" style="height:700px;">第四章的内容</div>
    </div>
</body>
</html>

    上面代码实现了本地的超链接,可以跳转到当前的网页,如下:

    http://localhost:63342/day13/s1/s7.html#i3

    在跳转后,网页后面会加上一个#i3的标志,当前网页内部的跳转,所以一定要加#号进行关联。HTML中,id不能重复。

    img--标签,图片

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <image src="image.png" style="height:200px;200px;"></image>   #src="图片地址" style="height:高度;宽度",stype标签设置图片高度合宽度
</body>
</html>

    我们知道,经常我们点击图片的时候会跳转到一个链接,如何做到的呢?把<img></img>标签当作参数给<a><img></img></a>标签,嵌套即可,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://jd.com" target="_blank">                                  #超链接的地址,点击跳转到京东商场
        <image src="image.png" style="height:200px;200px;"></image>     #图片的链接
    </a> 
</body>
</html>

    图片的链接里面有一些属性,src是指定普通地址,title属性,是图片的标题,放上去会显示标题;alt属性是如果图片损坏,或者图片地址获取,显示的信息,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="http://jd.com" target="_blank">
        <image src="image.png" style="height:200px;200px;" title="京东商场" alt="京东"></image>
<!-- src属性是图片地址,title属性是图片的名字,放上去会显示,alt是图片损坏之后,会显示的信息 --> </a> </body> </html>

    列表:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <ul>
        <li>第一章</li>                    #以点的形式排列
        <li>第二章</li>
        <li>第三章</li>
        <li>第四章</li>
    </ul>
    <div>
        <ol>
            <li>段落1</li>                #以1.的形式排列
            <li>段落2</li>
            <li>段落3</li>
            <li>段落4</li>
        </ol>
    </div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <dl>                      #定义以层级显示的方式
            <dt>第一章</dt>        #第一层
            <dd>第1节</dd>         #第二层
            <dd>第2节</dd>
            <dd>第3节</dd>
            <dd>第4节</dd>
            <dt>第二章</dt>
            <dd>第1节</dd>
            <dd>第2节</dd>
            <dd>第3节</dd>
            <dd>第4节</dd>         
        </dl>
    </div>
</body>
</html>
效果如下:
第一章
第1节
第2节
第3节
第4节
第二章
第1节
第2节
第3节
第4节

    表格:

    表格的展示,行列,标题,表格分为标题和内容<tbody>(内容)<thead>(标题)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <table>
            <tr>
                <td>第一行,第一列</td>             #表格分为行和列,tr代表的是行,td代表的是列
                <td>第一行,第二列</td>
                <td>第一行,第三列</td>
            </tr>
            <tr>
                <td>第二行,第一列</td>
                <td>第二行,第二列</td>
                <td>第二行,第三列</td>
            </tr>
            <!-- 表格分为行和列,行是<tr></tr>,列是<td></td> -->
        </table>
    </div>
</body>
</html>

    <table border="1"><table>其中,border把标签是定义边框。

    表格里面的超链接,我们在Excel中经常会在表格中做超链接,链接到其他地方,在HTML中表格也可以,只需要把<a>标签当作参数传递给单元格即可,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <table border="1">
            <tr>
                <td><a href="s3.html" target="_blank">百度</a></td>    #把<a>标签当作参数传递给<td>列标签,这个单元格就能超链接到指定的地址。
                <td>第一行,第二列</td>
                <td>第一行,第三列</td>
            </tr>
            <tr>
                <td>第二行,第一列</td>
                <td>第二行,第二列</td>
                <td>第二行,第三列</td>
            </tr>
            <!-- 表格分为行和列,行是<tr></tr>,列是<td></td> -->
        </table>
    </div>
</body>
</html>

    表格详解:

    表格是有表头和内容构成的,<thead><tbody>,其中,<thead><tr><th>里面是有行和表头th构成。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <table border="2">
            <thead>
                <tr>
                    <th>表头1</th>
                    <th>表头2</th>
                    <th>表头3</th>
                    <th>表头4</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Alex</td>
                    <td>女</td>
                    <td>38</td>
                    <td>北京</td>
                </tr>
                <tr>
                    <td>耿长学</td>
                    <td>男</td>
                    <td>27</td>
                    <td>长沙</td>
                </tr>
                <tr>
                    <td>wupeiqi</td>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
                            <tr>
                    <td>wupeiqi</td>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
                            <tr>
                    <td>wupeiqi</td>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

    合并单元格,行列合并的情况,合并单元格是在里面添加属性,如下:

    合并单元格,colspan="n"进行列的合并,合并n个列的单元格,rowspan="n"合并行的单元格,进行单元格行的合并,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <table border="2">
            <thead>
                <tr>
                    <th>表头1</th>
                    <th>表头2</th>
                    <th>表头3</th>
                    <th>表头4</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Alex</td>
                    <td>女</td>
                    <td>38</td>
                    <td>北京</td>
                </tr>
                <tr>
                    <td rowspan="2">耿长学</td>     #单元格行的合并rowspan
                    <td colspan="2">男</td>        #单元格列的合并,colspan
                    <td>长沙</td>
                </tr>
                <tr>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
                            <tr>
                    <td>wupeiqi</td>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
                            <tr>
                    <td>wupeiqi</td>
                    <td>女</td>
                    <td>8</td>
                    <td>保定</td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>

    -- label标签

    label标签和input标签结合使用,结合id使用,指定lable指定的是那个input输入,登录输入的时候会用到,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>老男孩</title>
</head>
<body>
    <label for="i1">用户名:</label>                      #lable标签使用for属性进行关联
    <input id="i1" type="text" name="user"/>             #id属性和label标签进行关联,让用户点击用户名的时候,能跳转到登录空输入
    <br>
    <label for="i2">密码:</label>
    <input id="i2" type="password" name="pwd" />
</body>
</html>

    --fieldset标签,用于显示复选框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>老男孩</title>
</head>
<body>
    <fieldset>
        <legend>登录</legend>
        <label for="i3">密码:</label>
        <input id="i3" type="password" name="pwd" />
        <br />
        <label for="i4" >密码:</label>
        <input id="i4" type="password" name="pwd" />
    </fieldset>
</body>
</html>

     CSS格式设置

    可以在<head>标签中定义样式<style></style>属性,通过里面的属性,设置格式,通过calss应用到每个标签里面,class的属性值是可以重复的,id在HTML中不能重复,但是class可以重复,就解决了标签样式重用的问题,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #i1{
            background-color:chartreuse;
            height:48px;
        }                                       
        .c1{
            background-color:forestgreen;
            height:50px;
        }
<!-- #定义的标签与id结合,id不能重复,只能使用一次;.定义的标签与class属性结合,class可以重复,解决了样式重复使用的问题 -->
</style> </head> <body> <div class="c1">第一段</div> <div class="c1">第二段</div> <div class="c1">第三段</div> </body> </html>

    对html中某一个标签都加上某一个背景,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            background-color:deeppink;
            height:50px;
        }
   <!-- 对所有的div标签都加上样式,其他的不管,所有的div执行同一个样式 -->
</style> </head> <body> <div class="c1">第一段</div> <span class="c1">第二段</span> <div class="c1">第三段</div> </body> </html>

     上面HTML代码,对所有的<div></div>标签都同时执行一个样式。

      对某个标签下的标签执行某种样式,关联标签,比如<span>标签下面的<div>标签执行样式,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span div{
            background-color:hotpink;
            height:38px;
        }
    </style>
    <!-- 表示对上述span 下的div标签执行样式操作 -->
</head>
<body>
    <div class="c1">第一段</div>
    <span class="c1"><div>第二段</div></span>
    <div class="c1">第三段</div>
</body>
</html>

    上面CSS样式是对<span>标签下面的<div>标签执行CSS样式

     对标签中某个属性等于某个值的标签执行样式,比如input标签里面type属性等于"text"的标签执行样式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        input[type='text']{
            background-color:lightcoral;
            height:36px;
        }
    </style>
    <!-- 表示对上述span 下的div标签执行样式操作 -->
</head>
<body>
    <input type="text" name="username" />
    <input type="submit" />
</body>
</html>

    一个标签里面的属性可以同时使用两个样式,样式的优先级,标签里面的优先级优先,标签外面的样式按照先后顺序,后面的样式会覆盖前面的样式。如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            background-color:red;
            color:white;
        }
        .c2{
            font-size:28px;
            color:black;
        }
    </style>
</head>
<body>
    <div class="c1 c2" style="color:deeppink">一个标签里面科研应用两个样式</div>
</body>
</html>

    style属性中float设置,float是网页中肯定有的属性,把网页进行分块,我们知道,<div>标签是块级标签,当有几个<div>把标签的时候,是分层堆叠的,如何让<div>标签在行内显示,可以使用style属性中的float进行设置,如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div style="background-color:red;30%;float:left">1</div>                  #进行浮动,让标签浮动起来,行内显示
    <div style="background-color:deeppink;40%;float:left">2</div>
    <div style="background-color:green;30%;float:left">3</div>
</body>
</html>

     上面<body>标签中有三个<div>标签,把整体分成了三块,每块的宽度加起来正好是100%,如果宽度超过100%还是会分层显示的。float是让标签进行浮动。漂浮的方向一致。

 

        

原文地址:https://www.cnblogs.com/gengcx/p/7617108.html