第十四课笔记

本节内容
    前端概要
    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;width: 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;width: 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居中。

 

 

posted on 2018-07-06 18:43  美含卡卡  阅读(325)  评论(0编辑  收藏  举报

导航