zoukankan      html  css  js  c++  java
  • 第十四课笔记

    本节内容
        前端概要
        HTML
        head标签
            p标签
            br标签
            span标签
            div标签
        body标签
            input系列标签
            多行文本textarea标签
            下拉框select标签
            a标签

        CSS

      用id设置样式
      class选择器
      标签选择器
      层级选择器
      组合选择器
      属性选择器
      css的优先级
      CSS其他常用样式

    前端概要

    HTML,CSS,JS 三把利器

    HTML

    众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。所有的web服务器的根源就是客户端和服务端的通过socket进行交互。

    访问一个网站,服务端返回一个字符串。浏览器把字符串给解析了

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

    HTML的本质

    1、一套规则、浏览器认识的规则
    2、开发者:
          学习html的规则
          开发后台程序:
                  写html文件(充当模板的作用) 数据库获取数据,然后替换到html文件的指定位置WEB框架
          本地测试
                 找到文件路径,直接浏览器打开
                 pycharm打开测试
                 如果pycharm打开显示不出你想要的效果,试试第一种方式打开
          编写html文件
                doctype 对应关系
                html标签,标签内部可以写属性
                注释 <!-- -->

    docType对应关系

    遵循统一的规范<!DOCTYPE html>,默认就是统一的规范

    <!DOCTYPE html>   #头部,第一句话,声明规范
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    </body>
    </html>

    <html></html>标签

    起始标签,结束标签,必须成对出现,html标签只能有一对

    把html比作一个人,只能有一个head,和一个Body

    <html>这是一对标签,把它称作html标签</html>
    <head>是head标签</head>
    <body>是body标签</body>

    标签内部属性

    lang="en"是标签内部的属性,标签内部,可以写属性
    <html lang="en">

    注释

    <!--注释的内容-->

    <!DOCTYPE html>   
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <!--这里是注释
    单行,多行都可以--> 
    </body>
    </html>

     head标签

    其实这个head标签的部分就相当于人的大脑,除了title之外,所有的标签都是看不到,所以我们今天我们就来仔细研究一下这个html的大脑部分,head标签的东西。

    标签分类

    自闭合标签

    说明:只有开头没有结尾的,是自动闭合的,所以称为自闭合标签,自闭合标签就那么几个,记住就好

    <meta> 标签
    <link> 标签

    主动闭合标签

     说明:有开头也有结尾,是主动闭合的,称为主动闭合标签,我们用到的大部分都是主动闭合标签

    <title></title>
    <style></style>
    <script></script>
    <body></body>
    <head></head>

    注:自闭和的标签,pycharm没有提示结束符,主动闭合的是有提示主动闭合的

    Meta标签(head内部标签)

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

    1.页面编码

    <meta charset="UTF-8">  #pycharm的写法,一般默认这个就可以了
     
    <meta http-equiv="content-type" content="text/html;charset=utf-8"> #第二种写法

    2.刷新和跳转

    <meta http-equiv="Refresh" Content="3">  #网站每3秒刷新一次
    <meta http-equiv="Refresh" Content="3; Url=http://www.baidu.com" /> #网站过三秒跳转到另外一个网页

    3.关键字

     说明:在百度网上什么关键字,可以搜索到这个网站,做搜素引擎的,关键字搜索

    <meta name="keywords" content="看看,说说,小白,钉钉" >

    4.描述

    说明:描述你的网站是干嘛的

    <meta name="description" content="此网站描述是用来做什么的。" />

    5.X-UA-Compatible,兼容问题

    微软的IE6是通过XP、win2003等操作系统发布出来,作为占统治地位的桌面系统,也使得IE占据了统治地位,许多网站开发的时候,就按照IE6的标准去开发,而IE6自身的标准也是微软公司内部定义的。到了IE7出来的时候,采用了微软公司内部标准以及部分W3C的标准,这个时候许多网站升级到IE7的时候,就比较痛苦,很多代码调整后,才能够正常运行。而到了微软的IE8这个版本,基本上把微软内部自己定义的标准都抛弃了,而全面的支持W3C的标准,由于基于对标准彻底的变化了,使得原先在IE版本上能够访问的网站,在IE8中无法正常的访问,会出现一些排版的错误、文字重叠、显示不全等各种兼容性错误。

    <meta http-equiv="X-UA-COMPATIBLE" content="IE=IE9;IE=IE8" /> #按照这种方式先找IE9,再找IE8...

    Title(head内部标签)

    <head>
        <title>Title</title>
    </head>

    Link(head内部标签)

    icon

    说明:在标题前加图标,rel的内容不能改变,固定这个名字,说明:在标题前加图标,这边要强调的是,添加的图片的位置image文件夹要跟index.html在同一层目录下。

    <head>
        <meta charset="UTF-8">
        <title>在标题前加图标</title>
        <link rel="shortcut icon" href="image/favicon.ico">  #在标题前加图标,rel的内容不能改变,固定这个名字
    </head>

    css

    说明:加载css样式文件

    <head>
        <meta charset="UTF-8">
        <title>加载CSS文件</title>
        <link rel="stylesheet" type="text/css" href="css/common.css"> #加载css样式文件
    </head>

    Style

    在页面中写样式

    <head>
        <meta charset="UTF-8">
        <title>在页面中写样式</title>
        <style type="text/css">   #定义css样式
            .bb{
                background: red;  #定义背景色为红色
            }
        </style>
    </head>

    Scipt

    说明:Script两种方式

    引进js文件

    <script type="text/javascript" src="http://www.baidu.com/tag/js/gpt.js"></script>

    写js代码

    <script type="text/javascript">....js代码</script>

     Body标签

    标签使用的符号

    <body>
        <a href="http://www.baidu.com">&nbsp;&nbsp;&lt;a&gt;</a>
    </body>

    p标签

    说明:p标签表示段落,默认段落之之间是有间隔的

    <body>
        <p>少时诵诗书所</p>
        <p>是发给发给</p>
        <p>是的分公司电饭锅电饭锅</p>
    </body>

     段落之间的间隔

    br标签

    说明:换行,这边br标签是自闭合标签,可以直接写<br>,也可以写成<br />,但是最好写成后面一种形式,这样就知道这是自闭合标签,不然搞混淆了

    <body>
       <p>少时诵诗书顶顶顶顶顶顶<br>顶顶顶顶顶顶顶顶顶顶顶顶顶所</p>
    </body>

    运行结果:

     其他标签

     h标签

    说明:标题标签,h1~h6,字体大小和粗细从大到小

    <body>
        <h1>AAAAAAAAAAAA</h1>
        <h2>AAAAAAAAAAAA</h2>
        <h3>AAAAAAAAAAAA</h3>
        <h4>AAAAAAAAAAAA</h4>
        <h5>AAAAAAAAAAAA</h5>
        <h6>AAAAAAAAAAAA</h6>
    </body>

     运行结果

     

    span标签

    作用:白板标签,自身什么特性都不带

    <body>
        <span>hello</span>
        <span>hello</span>
        <span>hello</span>
    </body>

    问:为什么会出现这么一个白板标签呢?

    答:因为我们以后学css的时候,就可以把这个白板转换自己想要的,因为白板自己想画什么就是什么,学了css之后,可以把白板标签变成任何一个标准。

    总结

    到目前为止,我们把所有标签分为两类:

    1. 块级标签:div标签(白板)、H系列标签(加大加粗)、p标签(段落与段落之间有间距)
    2. 行内标签(内联标签):span(白板)

    问:块级标签和行内标签区别是什么?

    答:块级标签:只要我写上这么一个标签,即使它的内容特别少,它也把整行都给占了

      行内标签:你自己有多少内容,就占多少地方

    div标签

    div标签是块级标签,也是属于一个白板标签

    <body>
        <div>我是DIV</div>
        <div>我是DIV</div>
        <div>我是DIV</div>
    </body>

    很明显,div属于块级标签,一个div占了一整行。

    标签之间的嵌套

    之前我们都是单行标签,没有做嵌套,其实标签之间是可以作嵌套,通过各种嵌套达到自己想要的效果

    <body>
        <div>
            <div>
                <span>嵌套span标签</span>   #嵌套span标签
            </div>
        </div>
        <div>
            <p>div下嵌套了p标签</p>   #div下嵌套了p标签
        </div>
    </body>

    问:那标签存在的意义是什么呐?

    答:页面的动态效果出来以后,要对页面上的某个文本进行操作,标签里面可以写属性,方便我们进行css和js的后期操作。

    Chrome 查看HTML元素

    1.Chrome打开页面

    2.空白处右键-检查/或者F12

     3.在页面上定位标签,点一下小箭头

     

     

    4、查看标签样式

     

    Body标签之input

    接下来我们来看一下input标签

    1.input标签的类型

    说明:input标签是一个自闭和标签,所以在标签最后面最好加上 /,写法也就是<input />。

    <body>
        <input type="text"/>  <!--文本input标签-->
        <input type="password"/>  <!--密码类型的input标签-->
        <input type="button" value="登录1"/>  <!--按钮类型的-->
        <input type="submit" value="登录2"/>  <!--提交类型的-->
    </body>

     运行结果

    填好数据,点按钮,发现没有办法提交,想要提交数据到后台咋办?

     2.form表单提交

     作用:form标签配合action属性,告诉你提交的数据到哪里。

    <body>
        <form action="http:www.baidu.com" method="GET">
            <input type="text" name="username"/><br />   <!--input标签需要加上name这个属性-->
            <input type="password" name="pwd"/><br />
            <input type="button" value="登录1"/>
            <input type="submit" value="登录2"/>  <!--提交表单,只能type="submit"类型的input标签-->
        </form>
    </body>

    form表单中属性的功能:

    1. action:指定你需要发送的后台的url
    2. method:你提交的表单需要用到什么方法,这边有POST和GET,如果不写method方法,默认请求是get请求

    注意:

      对于一个input标签,如果想向后台提交数据的时候,input标签一定要加上name这个属性,当你点击submit哪个登录按钮的时候,在html里面就会把你输入的数据做一个打包,把包打成一个类似于字典类型的数据类型,{"user_name":"zhangqigao","pwd":"0808"},然后再提交到后台,我就能拿到这个数据,然后做出相应响应。

    问:post和get方法有什么区别?

    答:post方法请求的参数是在body中,而get方法的请求参数是在head中

     3.text设置默认值

    <body>
        <form action="http:www.baidu.com" method="GET">
            <input type="text" name="username" value="user1"/><br />   <!--input标签需要加上name这个属性-->
            <input type="password" name="pwd"/><br />
            <input type="button" value="登录1"/>
            <input type="submit" value="登录2"/>  <!--提交表单,只能type="submit"类型的input标签-->
        </form>
    </body>

    运行效果:

    安装一个web框架

    。。。

    4.单选框

     

    <form>
        <div>
            <p>请选择性别</p>
            <span></span><input type="radio"/> <!--type=radio是单选框-->
            <span></span><input type="radio"/>
        </div>
        <input type="submit" value="登录"/>
    </form>

     运行结果

    因为是单选框,所以要加一个name属性,只做单选必须要给一组radio起一个相同的name

      <div>
            <p>请选择性别</p>
            <span></span><input type="radio" name="sex"/> <!--type=radio是单选框-->
            <span></span><input type="radio" name="sex"/>
          </div>

    但是还是有个疑问,那就是,我怎么想后台发我选中的值呐?所以再加一个value属性

        <form>
            <div>
                <p>请选择性别</p>
                <span></span><input type="radio" name="sex" value="1"/> <!--value赋值-->
                <span></span><input type="radio" name="sex" value="2"/>
            </div>
        </form>

    那如果我还需要搞一个默认值,这里就需要加一个checked属性了

    <form>
            <div>
                <p>请选择性别</p>
                <span></span><input type="radio" name="sex" value="1" checked="checked"/> <!--默认选中-->
                <span></span><input type="radio" name="sex" value="2"/>
            </div>
        </form>

    5.checkbox 复选框

       <form>
           <div>
               <p>爱好</p>
               足球:<input type="checkbox" name="favor" value="1" checked="checked"/> <!--checked默认值可以写多个-->
               篮球:<input type="checkbox" name="favor" value="2"/>
               台球:<input type="checkbox" name="favor" value="3" checked="checked"/>
           </div>
           <input type="submit" value="登录"/>
       </form>

    这边要注意了,因为多选框,发过去的值有对个,效果就像如图所示:

     所以后台一般是这样取的:

    favor_list = self.get_arguments('favor')  #后台通过这个方法去拿
    favor_list = [1,2,3] #把值存在一个列表中获取到

    6.文件上传

    <form>
            <div>
                <input type="file" name="filename"/>   <!--文件类型为file,表示上传文件,后台根据name,拿到文件 -->
            </div>
            <input type="submit" value="登录"/>
    </form>

    但是即使 你设置了name也不能上传文件,因为上传文件必须依赖form一个属性,这个属性是enctype="multipart/form-data"

    <form enctype="multipart/form-data"> <!--上传文件必须添加enctype="multipart/form-data"属性-->
            <div>
                <input type="file" name="filename"/>   <!--文件类型为file,表示上传文件,后台根据name,拿到文件 -->
            </div>
            <input type="submit" value="登录"/>
    </form>

    这个属性表示你本地的文件需要一点一点的发送给服务器,服务器接收到,然后写到服务器的磁盘上。

     7.重置

     作用:可以把所有输入框,恢复初始化状态

    <form>
           <div>
                <input type="text" name="username"/><br />
                <input type="password" name="pwd"/><br />
            </div>
            <input type="submit" value="登录"/><input type="reset" value="重置"/>
    </form>

    点击重置按钮,文本被清空

     

    总结

    input系列:

    1. input   type='text'      - name属性 , value='123'
    2. input   type='password'      - name属性 , value='123'
    3. input   type='submit'      - value='提交'   提交表单按钮
    4. input   type='button'      - value='登录'   普通按钮
    5. input   type='radio'      - 单选框   value,check="checked",name属性(name相同则相互互斥)
    6. input   type='checkbox'      - 复选框   value,check="checked",name属性(批量获取数据)
    7. input   type='file'      - 依赖form表单的一个属性,enctype="multipart/form-data"
    8. input   type='reset'   -重置

     

    多行文本textarea标签

    作用:多行文本向后台提交时,需要加上name属性,默认值不是在标签内添加value属性,而是在中间添加

    <form>
           <div>
                <input type="text" name="username"/><br />
                <input type="password" name="pwd"/><br />
            </div>
    
            <div>
                <textarea name="mult">默认值</textarea> <!--多行文本-->
            </div>
    
            <input type="submit" value="登录"/><input type="reset" value="重置"/>
    </form>

    运行结果:

    下拉框select标签

     作用:普通下拉框,然后selected属性是默认选择哪个值

    • select标签,选项用option标签
    • 设置value值,传给后台区分选的是哪个值。把对应的value提交给后台
    • 设置默认值selected

    查看元素

        <form>
            <div>
                <select name="city"> <!--select标签 -->
                    <option value="1">上海</option>  <!--选项用option标签-->
                    <option value="2">北京</option>  <!--selected属性是默认选中谁-->
                    <option value="3" selected="selected">南京</option> 
    <option value="4">成都</option>
    </select> </div> <input type="submit"/> </form>

    运行结果

    1.设置默认显示几条数据

        <form>
            <div>
                <select name="city" size="3"> <!--select标签 -->
                    <option value="1">上海</option>  <!--选项用option标签-->
                    <option value="2" selected="selected">南京</option>  <!--selected属性是默认选中谁-->
                    <option value="3">北京</option>
                </select>
            </div>
            <input type="submit"/>
        </form>

    运行结果:

    2.设置多选

    想多选的时候按住【ctrl】提交,三个值都提交到后台了

     3.设置分组选项

    说明:通过optgroup标签来实现分组选项,但是组名是不可以选择的

        <form>
            <div>
                <select name="city">
                    <optgroup label="辽宁省">  <!--设置分组-->
                        <option value="1" selected="selected">沈阳</option>
                    </optgroup>
                    <optgroup label="吉林省">
                        <option value="2">长春</option>
                    </optgroup>
                     <optgroup label="黑龙江">
                        <option value="3">哈尔滨</option>
                    </optgroup>
                </select>
            </div>
            <input type="submit"/>
        </form>

     运行结果:

    总结

    1. textarea标签        - name属性 ,<textarea>默认值</textarea>
    2. select标签            - name属性 ,子标签option定义value,提交到后台,size显示多个,muiltiple多选

    a标签,超链接

    a标签是行内标签,且不能提交后后台。

    a标签的作用

    1.跳转

    作用:a标签可以作跳转的作用

    <body>
        <a href="http://www.baidu.com">百度一下</a>
    </body>

     ——在当前页打开

    以上默认是在当前的tag页面跳转,如果想再新的tag的页面跳转的话,需要加上target='_blank'标签

    <body>
        <a href="http://www.baidu.com" target="_blank">百度一下</a>  #添加target="_blank",
    </body>

      ——在新的标签页打开

     a标签不能交到数据库,可以用来做跳转

    2.锚

    作用:就是在一个页面中,通过点一个标题,直接跳转到你的所想要看到的页面

    <body>
        <a href="#i1">第一章</a>
        <a href="#i2">第二章</a>
        <a href="#i3">第三章</a>
        <div id="i1" style="height: 600px;">第一章的内容</div>
        <div id="i2" style="height: 600px;">第二章的内容</div>
        <div id="i3" style="height: 600px;">第三章的内容</div>
    </body>

     style="height: 600px;"使页面上有滚动条 标签和内容锚点对应

    从上面的代码,我们可以看出,想实现锚的效果,就是在a标签里面 href = "#某个标签的id" ,这样就让这个a标签跟某一个章节关联了。

     这边注意了:在html里面,id属性是不能重复的,name属性是可以重复的,但是一般不重复。

    总结

    a标签:

    1. 跳转
    2. 锚       href="#某个标签的ID"    标签的ID不允许重复

    img标签

    图片标签

    <a href="http://www.baidu.com"  target="_blank">
            <img src="11.jpg" style="height: 200px;">
    </a>

    鼠标悬停时显示

    需要加上title属性,就是鼠标放在图片上会显示标题,

    <a href="http://www.baidu.com"  target="_blank">
            <img src="11.jpg" title="大美女" style="height: 200px;"/>
    </a>

    图片不存在,则我可以给一个默认值,需要用alt属性,不显示图片时显示默认文字

    <a href="http://www.baidu.com"  target="_blank">
            <img src="1.jpg" title="大美女" style="height: 200px;" alt="美女"/>
    </a>

     这边要注意的是,只有a 标签可以使用超链接,其他任何标签都不可以使用超链接,想用超链接,只能用 a 标签

    列表标签

    1.ul标签

    说明:ul=>unordered lists 无序列表,跟li标签配合着使用

    <ul><li>成对出现,一起使用

    <ul>
        <li>啊啊啊</li>
        <li>哦哦哦</li>
        <li>嗯嗯嗯</li>
    </ul>

     运行得到

    2.ol标签

     说明:ol=>ordered lists 有序列表,也是跟li标签配合着使用

    <ol>
        <li>帅高高</li>
        <li>高哥哥</li>
        <li>高高</li>
    </ol>

    3.dl标签

    说明:dl=>defintion list 定义一个列表   配合着dt=>defintion title(定义标题)和dd=>defintion description(描述)两个标签配合使用

    <dl>
        <dt>辽宁</dt>
        <dd>沈阳</dd>
        <dd>大连</dd>
        <dd>抚顺</dd>
        <dd>本溪</dd>
    </dl>

    表格标签

    table标签

    说明:table标签是设计表格的,跟tr(行列)和td(列)两个标签结合使用的,加上border属性,显示边框

    <table border="1">
        <tr>
            <td>第一行,第1列</td>
            <td>第一行,第2列</td>
            <td>第一行,第3列</td>
        </tr>
         <tr>
            <td>第二行,第1列</td>
            <td>第二行,第2列</td>
            <td>第二行,第3列</td>
        </tr>
    </table>

    <body>
        <table border="1">   #border属性显示边框
            <tr>   #一行
                <td>主机名</td>  #表示一列
                <td>端口</td>
                <td>操作</td>
            </tr>
            <tr>
                <td>1.1.1.1</td>
                <td>8080</td>
                <td><a href="h1.html">查看详情</a></td>   #超链接可以是具体的某个页面
            </tr>
        </table>
    </body>

    规范的table标签格式
    说明:table标签应该有thead和tbody内容组成,thead(写表头)内有分为tr和th,tbody里面是tr和td,建议以后使用这种规范的方式写table标签

    一定做好缩进,没有的话pycharm中[Code]-[Reformate Code] 可以做到,自动缩进。

    不用pycharm一定换行,缩进,换行,缩进。

     规范的写法

    <body>
        <table border="1">
            <thead>
                <tr>
                    <th>主机名</th>
                    <th>端口号</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1.1.1.1</td>
                    <td>8080</td>
                    <td>查看详情</td>
                </tr>
            </tbody>
        </table>
    </body>

     列和行合并

    ①列合并

    这边列合并需要使用到colspan=>colum span属性,表示是列合并

    <body>
        <table border="1">
            <thead>
                <tr>
                    <th>主机名</th>
                    <th>端口号</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1.1.1.1</td>
                    <td colspan="2">8080</td>  #colspan='2'表示这个td占2个列
                </tr>
                <tr>
                    <td>1.1.1.1</td>
                    <td>8080</td>
                    <td>查看详情</td>
                </tr>
            </tbody>
        </table>
    </body>

     横向合并

     

    ②行合并

    这边行合并需要使用到rowspan=>row span属性,表示是行合并

    <body>
        <table border="1">
            <thead>
                <tr>
                    <th>主机名</th>
                    <th>端口号</th>
                    <th>操作</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td rowspan="2">1.1.1.1</td>  #rowspan='2'表示td上下横跨两个行
                    <td colspan="2">8080</td>
                </tr>
                <tr>
                    <!--<td>1.1.1.1</td>-->  #这一行需要去掉
                    <td>8080</td>
                    <td>查看详情</td>
                </tr>
            </tbody>
        </table>
    </body>
    View Code

    总结

    <table>标签,<thead>(写表头)内有分为<tr>和<th>,<th>中定义表头列名

                            <tbody>里面是<tr>和<td>,<td>中定义表格中的value

    合并单元格:colspan行合并,等于几就合并几个格

                          rowspan列合并,等于几就合并几个

     <label> 标签

    作用:<label> 标签为 input 元素定义标注(标记)。

    label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

    <label> 标签的 for 属性应当与相关元素的 id 属性相同。

    用for属性关联input标签的id属性,这样点击文件,使得关联的标签获取光标

    <label for="user">用户名:</label>  #for属性关联input标签的id属性
    <input id="user" type="text" name="username"/>

    提示和注释:

    注释:"for" 属性可把 label 绑定到另外一个元素。请把 "for" 属性的值设置为相关元素的 id 属性的值。

    <fieldset> 标签

    定义和用法:

    fieldset 元素可将表单内的相关元素分组。

    <fieldset> 标签将表单内容的一部分打包,生成一组相关表单的字段。

    当一组表单元素放到 <fieldset> 标签内时,浏览器会以特殊方式来显示它们,它们可能有特殊的边界、3D 效果,或者甚至可创建一个子表单来处理这些元素。

    <fieldset> 标签没有必需的或唯一的属性。

    <legend> 标签 为 fieldset 元素定义标题。

     这个标签很少用到,作用主要是显示出一个框的,基本用不到

    <body>
        <fieldset>  #fieldset配合着legend使用
            <legend>登录</legend>
        </fieldset>
    </body>

    fieldset和label标签配合起来使用

    <body>
        <fieldset style="height: 200px; 300px;">  #fieldset 标签
            <legend>登录</legend>
            <label for="user">用户名:</label>   #label标签
            <input id="user" type="text" name="username"/>  #input标签
            <br/>
            <label for="pwd">密码:</label>
            <input id="pwd" type="password" name="pass_word"/>
        </fieldset>
    </body>

     

    CSS选择器

    以上关于html的博客和知识的总结,现在正式进入css的学习,css的第一个知识点,css的选择器

     1.在标签上设置css样式

    <body>
        <div style="background-color: red;height: 20px; 200px;">来看CSS神通</div> #style属性就是设置样式的
    </body>

     运行效果

    关于颜色的定义可以点这里 颜色定义

    2.写在head里面

     这种css的使用方法又叫css选择器,我们下面重点来说一下,css的注释方法:/* ..... */

    2.1用id设置样式 #id设置

    说明:在head标签的style中设置 #id 设置样式,这个id对应的是标签的id,但是这个一般不用,因为我们的id是默认不重复的

    #id{
        .....
    }
     
    <标签 id="id"></标签>

     实例

    <head>
        <style>  
            #i3{
                background-color: red;
                height: 20px;
                width: 200px;
            }
        </style>
    </head>
    <body>
        <div id="i3">aaaaa</div>  <!--用id设置样式-->
    </body>

    2.2、class选择器

    说明:在head标签的style中设置 .名称 样式,在标签中直接用class='名称'的方式使用样式

    .名称{
        ....
    }
     
    <标签 class="名称"></标签>

    实例

    <head>
        <style>
            .c1{        /*.样式名称*/
                background-color: red;
                height: 20px;
                width: 200px;
            }
        </style>
    </head>
    <body>
        <div class="c1">lalalalalalala</div>
    </body>

    3.标签选择器

    说明:利用标签设置样式,这个作用是使此类标签都使用这个样式

    标签名{
         ..... 
    }
     
     
    <标签名></标签名>

    举个例子

    <head>
        <style>
            div{
                background-color: #ADFF2F;
                height: 20px;
                width: 200px;
            }
        </style>
    </head>
    <body>
        <div>AAAAAAAAA</div>  <!--所有的div都使用此样式-->
        <span>BBBBBBBBB</span>
        <div>CCCCCCCC</div>
    </body>

    运行效果

    4.层级选择器

    说明:根据层级关系,选择某个标签下的所有标签使用该样式,层级之间用空格分开

    第1层标签    第2层标签名  ....{
            ......
    }
     
     
    <第1层标签>
            <第2层标签>
                  ........
            </第2层标签>
    </第1层标签>

     注意:这里的标签可以是 class(.c1)、id(#id)、标签名(div)

    实例:

    <head>
        <style>
            #c2{
                background: skyblue;
            }
    
            span div{    /*这边的span div 可以写成  .c1 div  或者 #c1 div*/
                background-color: red;
                height: 20px;
                width: 200px;
            }
        </style>
    </head>
    <body>
        <div class="c1">AAAAAAAAA</div>
        <span id="c2" class="c1">aaaaaaaa
            <div>bbbbbbb</div>
            ccccccccccc
        </span>
        <div class="c1">BBBBBBBBBBBBBB</div>
    </body>

    运行效果:

    5.组合选择器

    说明:就是多个标签使用一个样式,标签之间用逗号隔开

    第1个标签,第2个标签,第3个标签,.....{
                 ......
    }
     
     
    <第1个标签></第1个标签>
    <第2个标签></第2个标签>
    <第3个标签></第3个标签>

    注意了:这里的标签跟上面的一样可以是 class(.c1)、id(#id)、标签名(div) 

    实例:

    <head>
        <style>
            #i1,span{    /* 这边#i1,span 可以是div,span,也可以是.c1,span */
                background-color: red;
                height: 20px;
                width: 200px;
            }
        </style>
    </head>
    <body>
        <div id="i1">AAAAAAAAAAAAA</div>
        <span>aaaaa
            <div id="i3">bbb</div>
            ccc
        </span>
        <div id="i2">DDDDDDDDDD</div>
    </body>

    运行效果

     6、属性选择器

     说明:根据标签的属性来设置样式

    标签[属性名=values]{
                ......
    }
     
     
    <标签 属性名=values></标签>

    注意了:这个属性是可以css自定义的,也可以是自己定义的。

    <head>
        <style>
            input[n="att"]{  /*  这边用的是自定义的,也可以用type="text"或者class="c1"   */
                height: 48px;
            }
            .cl{
                background-color: skyblue;
            }
        </style>
    </head>
    <body>
        <input type="text" n="att" class="cl"/>
        <input type="password"/>
    </body>

     css的优先级

    1.引入多个样式

    说明:我们知道一个标签可以有多个css的样式,就是说一个class属性可以写入多个样式,中间以空格隔

    <head>
        <style>
            .c1{  /*这边用的是自定义的,也可以用type="text"或者class="c1"*/
                height: 48px;
                background-color: skyblue;
            }
            .c2{
                font-size:58px;
                color:black;
            }
        </style>
    </head>
    <body>
      <div class="c1 c2">aaaaaaaaaaa</div>  <!--引用多个样式,中间以空格隔开-->
    </body>

    运行结果:

    2.多个样式的优先级

    说明:标签上的style优先级最高,然后是编写顺序,就近原则,在head的style标签里面越往下的标签,优先级越高。

    <head>
        <style>
            .c1{  /*这边用的是自定义的,也可以用type="text"或者class="c1"*/
                height: 48px;
                background-color: skyblue;
            }
            .c2{
                font-size:58px;
                color:black;
            }
        </style>
    </head>
    <body>
      <div class="c1 c2" style="color:orange">aaaaaaaaaaa</div>  <!--引用多个样式,中间以空格隔开-->
    </body>

     运行效果:

    注意:这边说的优先级高,指的是样式里面有同一个样式,比如上面三个都有color样式,如果他们存在不同的样式,则三种样式不存在优先级,都所有的样式都用上。

    3.使用Chrome查看优先级

     

    css的存在形式

     之前我们写的样式都是写在了head的style里面,但是这样只能提供一个html文件使用,其他的html文件就不能很好的重用此样式了,效果如图:

    <head>
        <style>
            .c1{  /*只能当前html使用 ,其他thml不能使用*/
                height: 48px;
                background-color: skyblue;
            }
            .c2{
                font-size:58px;
                color:black;
            }
        </style>
    </head>
    <body>
      <div class="c1 c2" style="color:orange">aaaaaaaaaaa</div>  
    </body>

    其他的html文件也想用,所以我们就创建一个css文件,然后通过在head标签里面的link标签去导入就可以了

    CSS其他常用样式

    CSS边框

    作用:设置标签周围的边框的,具体使用方法:board:宽度 样式 颜色,一般情况下样式使用 solid实体的,和dotted虚线的

    运行结果:

     

     注:这边不仅有border,还有 border-top,border-left,border-right,border-bottom,分别是边框顶部,边框左边,边框右边,边框底部

    高度

    作用:设置标签的高度的,使用方法:height: 高度大小 ,可以是具体的数字大小比如说:20px,也可以是百分比:50%,但是这个是高度是无限大的,

    所以只能在某个边框里面再设置百分比,不然就没有意义了。

     

    运行效果:

    宽度

    作用:设置标签的宽度,使用方法:width:宽度大小,这个跟上面的height是一样的,可以是具体大小:50px,也可以是整个屏幕宽度的百分比:50%

     

    运行结果:

     注意了:虽然div有了高度和宽度,但是它仍然是一个块级标签。

     字体大小

    作用:设置标签内的字体大小,使用方法:font-size:字体大小,示例:font-size:40px

     

     水平居中

    作用:能把标签内的字体,进行水平居中。使用方法:text-align:center

     

    运行效果:

     以上是水平居中

    vertical-align:middle水平居中用起来比较麻烦,所以不使用。

    垂直居中

    作用:能把标签内的字体,进行水平居中。使用方法:line-height:标签高度值。这个值是根据你的div值有多高,给你居中一下。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .c1{
                border:2px solid red;
                height:120px;
                width:50%;
                font-size:40px;
                text-align:center;
                line-height:100px;
            }
        </style>
    </head>
    <body>
    <div class="c1">垂直居中</div>
    </body>
    </html>

     

    字体加粗

    作用:给你标签内的字体加粗。使用方式:font-weight:bold

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .c1{
                border:2px solid red;
                height:120px;
                width:50%;
                font-size:40px;
                text-align:center;
                line-height:100px;
                font-weight:bold;
            }
        </style>
    </head>
    <body>
    <div class="c1">字体加粗</div>
    </body>
    </html>

    总结

    1、边框
        宽度、样式、颜色  (border:4px dotted red;) border-top,border-left,border-right,border-bottom,分别是边框顶部,边框左边,边框右边,边框底部
    2、其他样式
        height:高度  像素,百分比
        width:宽度  像素,百分比
        text-align:center   水平方向居中
        line-height  垂直方向居中,这个需要根据标签的高度
        color  字体颜色
        font-size 字体大小
        font-weight 字体加粗

    css之float样式

    如果写了三个DIV,那么是不是就一个DIV占一行,一个DIV占一行。如果说想让一个DIV在左占20%,一个在右80%,这样可以吗?

    DIV是块级标签,好像不可以。快速的让他们堆积起来,在一行显示,标签和标签之间要是飘起来得挨着,且一个占20%,一个占80%

    float样式非常重要,要是不会它,那几乎所有的页面都写不出来,float的意思是浮动的意思,就是让标签都浮动起来,不要受父标签控制,就是脱离了父标签的控制。

    float样式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>标签</title>
        <style>
            .float-left{
                height: 50px;
                width: 20%;
                background:red;
                float: left;
            }
            .float-right{
                height: 50px;
                width: 80%;
                background:skyblue;
                float: left;
            }
        </style>
    </head>
    <body>
        <p>啊啊啊啊啊啊啊啊</p>   <!--块级标签p-->
        <div>   <!--只在div标签中浮动起来-->
            <div class="float-left">float悬浮的使用A</div>   <!--两个div都往左飘-->
            <div class="float-right">float悬浮的使用B</div>
        </div>
    </body>
    </html>

    运行效果:

     一个往左飘20%,一个往右飘60%,中间会有20%的空白。也是可以的。

     

    只要超过100%,哪怕只有一点,也得另起一行

     

     如果一个飘一个不飘呢?不过这样没有什么意义。

     运行效果,往一块堆叠

     

    float里面有坑——后续再说。

    float作用,让标签浪起来 ,块级标签也可以堆叠

    举个小例子

    定义一个header

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>标签</title>
        <style>
            .pg-header {
                height: 38px;
                background-color: #dddddd; <!-灰色-->
                line-height: 38px;
            }
        </style>
    </head> 
    <body style="margin: 0 auto;">  
    <div class="pg-header">
        <div style="float: left">收藏本站</div>
        <div style="float: right">
            <a>登录</a>
            <a>注册</a>
        </div>
    </div>
    </body>
    </html>

     注意:在body标签中有一个margin: 0 auto,这里面这个0表示上线间距为0,auto表示你如果设置成自动的,表示让当前的div居中。

     

  • 相关阅读:
    监控 Linux 性能的 18 个命令行工具
    VS2015中无法查找或打开 PDB 文件
    C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous
    malloc用法
    C语言中i++和++i的区别
    vs未定义的标识符“round”ceil()和floor()
    error C2065: “uint8_t”: 未声明的标识符
    strtol 函数用法
    C++ “string”: 未声明的标识符
    C++ 中c_str()函数
  • 原文地址:https://www.cnblogs.com/meihan/p/9275161.html
Copyright © 2011-2022 走看看