zoukankan      html  css  js  c++  java
  • HTML 基础

    1. HTML 定义

    BS 模式:Browser、Server,即浏览器与服务器模式。

    HTML(Htyper Markup Language)即超文本标记语言,超文本(页面内可以包含图片、链接、引用、甚至程序 ),标记语言:标记(标签)构成的语言。

    网页

    网页即 HTML文档,由浏览器解析并展示出来,网页分为:

    • 静态网页:不能与用户交互
    • 动态网页:HTML代码是由某个开发语言根据用户请求动态生成的

    HTML 文档树

    1.1 标签

    由一对尖括号包裹的单词构成,标签由开始标签(如:<h1>)和结束标签(如:</h1>)以及中间标签包裹部分的标签体(如:<h1>一级标题</h1>)构成。

    还有一些标签没有只有一个标签,这种标签称为 自闭标签,如:<br/>、<input/>、<hr/>、<img/> 等。

    1.2 标签属性

    标签属性通常用来描述标签属性的某个功能,有如下要求:

    • 只能出现在开始标签或自闭标签中
    • 以键值对形式出现,如:id=content
    • 属性值必须用单或双引号包裹
    • 当属性名与属性值相同时,可以只写属性名

    1.3 <DOCTYPE html> 标签

    浏览器解析渲染 HTML 页面有两种模式 :BackCompat(怪异模式,默认,旧标准) 、CSS1Compa(标准模式,W3C 新标准)。

    浏览器默认按照 BackCompat 模式渲染页面,如若要按照 W3C 新标准就需要在 HTML 文档最开头加上这一句:<DOCTYPE html>

    2. head 标签

    head 标签被称为头标签,不会呈现在页面上。

    2.1 meta 标签

    meta 标签有两个属性:http-equiv、name

    name 属性

    用于描述网页,属性值 content 中的内容主要便于搜索引擎机器人查询信息和分类信息用。

    <meta name="keywords" content="python, html">   <!--keywords 为搜索关键词-->
    <meta name="description" content="描述文本">   <!--description 为在搜索每个网页时的每个网页的描述信息-
    

    http-equiv 属性

    相当于 http 的文件头作用,向浏览器传回一些有用信息,以帮助精确地显示网页内容。

    <!-- 用于刷新网页,2s后跳转到 Python 官网 -->
    <meta http-equiv="Refresh" content="2; URL=https://python.org">
    <!-- 编码类型 -->
    <meta http-equiv="content-type" charset="utf8">
    <!-- 兼容其他浏览器,如:IE6、Edge(IE=Edge) -->
    <meta http-equiv="X-UA-Compatible" content="IE-EmulateIE6" />
    

    2.2 其他 head 标签

    <!-- 网页标题标签 -->
    <titile>Python</title>
    
    <!-- 引入外部 css 文件 -->
    <link rel='stylesheet' type='text/css' href='xxx.css'>   
    
    <!-- 在html文档中插入css文件 -->
    <style type='text/css'></style>
    
    <!-- 网页图标 -->
    <link rel='icon' sizes='any' href='xxx.png'>
    
    <!-- 插入外部 js 文件 -->
    <script src='xxx.js'></script>
    
    <!-- 在html文档中插入js文件 -->
    <script type='text/javascript'></script>
    

    3. 基本标签

    3.1 hx 标签

    hx 标签(h1...h6),用于表示 HTML 文档标题

    <h1>一级标题</h1>
    

    3.2 p 标签

    段落标签,包裹的内容被换行,并且上下文间有空白

    <p>春蚕到死丝方尽</p>
    <p>蜡炬成灰泪始干</p>
    

    3.3 b 和 strong 标签

    b 和 strong 标签都是用于加粗文本,b 标签逐渐被淘汰

    <b>文本加粗</b>
    <strong>文件加粗</strong>
    

    3.4 strike 标签

    strike 标签为删除线标签

    <strike style="background: black">删除线</strike>
    
    
    

    3.5 em 标签

    文本斜体

    <em>斜体</em>
    

    3.6 sup 和 sub 标签

    上下角标签

    2<sub>3</sub>
    2<sup>3</sup>
    
    

    3.7 br 标签

    换行标签

    <br />		<!--可不加 /-->
    
    

    3.8 hr 标签

    分隔线标签

    <hr>
    
    

    3.9 span 标签

    为文本设置单独的样式,没有别的语义,与 div 类似,但是是内联标签

    <span>文本</span>
    
    <!--将 Python 设置为蓝色-->
    <style type="text/css">
        span{color: blue}
    </style>
    <p><span>Python</span>是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。</p>
    
    

    3.10 div 标签

    div 标签没有特定的语义,一般作为容器包裹其他标签,也不会显示在网页上。

    <div><p>xxx</p></div>
    
    

    3.11 块级标签和内联标签

    块级标签:address , blockquote , center , dir , div , dl , fieldset , form , h1 , h2 , h3 , h4 , h5 , h6 , hr , isindex , menu , noframes , noscript , ol , p , pre , table , ul , li

    内联标签:a , abbr , acronym , b , bdo , big , br , cite , code , dfn , em , font , i , img , input , kbd , label , q , s , samp , select , small , span , strike , strong , sub , sup ,textarea , tt , u , var

    • 块级标签特点:
      • 独占一行
      • 宽度为容器的 100%,但可以设置宽度
      • 可以包含内联、其他块标签
      • hx、p、dt 标签不能包含块级标签,只能包含内联标签
    • 内联标签特点:
      • 与其他标签在同一行
      • 宽度是其文本或图片本身的宽度,不可变
      • 只能包含文本、图片或其他内联标签

    特殊字符:

    &lt;		<    
    &gt;		>
    &quot;		"
    &copy;		©
    &reg;		®
    &ensp;		一个空格
    
    

    4. 图形标签 img

    img 标签用于显示图片,其属性如下:

    • src:图片路径
    • alt:图片加载失败时显示的信息
    • title:鼠标悬浮在图片上的提示信息
    • width、height:图片宽度、高度,若只用一个会自动等比缩放
    <img src='https://raw.githubusercontent.com/hj1933/img/master/img/AlanTuringNotebook_EN-AU7743633207_1920x1080.jpg' alt='加载失败' title='书籍'>
    
    

    5. 超链接标签 a

    a 标签为超链接标签,可以在页面内跳转(锚 #),以及跳转外部超链接,属性如下:

    • href:超链接
    • target:要跳转的框架,默认在当前页面打开,当设置为 _blank 时会在新的窗口打开
    • name、id:锚(anchor)的名称
    • :锚,页面内定位,与 id 配合使用

    <a href='https://www.python.org' target='_blank' name=>Python 官网</a>
    
    <!--利用锚回到顶部-->
    <p id='abc'>顶部</p>
    <a href='#abc'></a>			
    
    <!--图片链接-->
    <a href='xxx.com'><img src='xxx.img'></a>
    
    

    利用锚在页面内定位:

    <div>
        <h2>HTML 教程</h2>
        <li><a href="#c1">第一章</a></li>
        <li><a href="#c1">第二章</a></li>
        <li><a href="#c1">第三章</a></li>
    
        <h3><a name="#c1">第一章 head标签</a></h3>
        <p>head标签为头标签</p>
    
        <h3><a name="#c1">第二章 图形标签</a></h3>
        <p>img标签为图形标签</p>
    
        <h3><a name="#c1">第三章 超链接标签</a></h3>
        <p>a标签为超链接标签</p>
    </div>
    
    

    点击第一章、第二章可以跳转到相应内容区:

    6. 列表标签

    列表分为无序列表(ul)、有序列表(ol)以及自定义列表(dl)。

    无序列表

    <ul>
        <li>第一行</li>
        <li>第二行</li>
        <li>第三行</li>
    </ul>
    
    

    有序列表

    <ol>
        <li>第一行</li>
        <li>第二行</li>
        <li>第三行</li>
    </ol>
    
    

    自定义列表

    <dl>	<!--定义列表-->
        <dt>1 head标签</dt>		<!--列表标题-->
        <dd>1.1 meta标签</dd>		<!--列表项-->
        <dd>1.2 title标签</dd>
    </dl>
    
    

    7. 表格标签 table

    创建表格的六个标签元素:table、thead、tbody、tr、th、td

    • thead:通常用来包裹表头,可省略
    • tbody:用于包裹表格内容,可省略
    • tr:表格的行
    • th:表头
    • td:表格的一个单元格,一行中包含几个 td,说明这一行中就有几列

    table 标签属性

    • border:表格边框,单位像素(px)
    • cellpadding:内边距
    • cellspacing:外边距
    • width:宽度,单位(像素、百分比),一般用 CSS 来设置

    td / tr 标签属性

    • rowspan:合并单元格(行)
    • colspan:合并单元格(列)
    <tr>
        <td rowspan="2">1</td>		  <!--合并行-->
        <td colspan="2">电脑</td>		<!--合并列-->
        
    </tr>
    
    <tr>
        				<!--要删除一个单元格-->
        <td>手机</td>		
        <td>80000</td>
    </tr>
    
    

    Tips:合并单元格,需要先删除其中一个单元格,再将设置另外一个单元格的 rowsapn 属性

    示例:

    <table border="1px">
        <caption>表格标题</caption>		<!--设置表格标题-->
        <thead>
            <tr>
                <th>序号</th>
                <th>产品名称</th>
                <th>库存量</th>
            </tr>
        </thead>
    
        <tbody>
            <tr>
                <td>1</td>
                <td>电脑</td>
                <td>10000</td>
            </tr>
    
            <tr>
                <td>2</td>
                <td>手机</td>
                <td>80000</td>
            </tr>
        </tbody>
    </table>
    
    

    8. 表单标签 form

    表单用于向服务器传输数据,包括input、textarea、select、fieldset 和 label 等元素。

    表单属性

    表单接收不同类型的用户输入,要提交给服务器的内容都包含在其中,属性如下:

    • action:表单要提交到的地方,一般为服务器的一个程序,程序对表单提交过来的数据做相应处理,如:https://baidu.com/web
    • method:表单提交的方式(post、get)
      • get:提交的键值对,放在地址栏中 URL 后面,安全性相对较差,对提交内容长度有限制
      • post:提交的键值对,不在地址栏,安全性相对较高,提交的内容长度无限制(在Chrome-检查-network-Form-Data 中可以查看)
    <form action='http://127.0.0.1:8080' method='post'></form>
    
    

    8.1 input 标签

    input 属性和对应值:

    • type
      • text:文本输入框
      • password:密码框
      • radio:单选框
      • checkbox:多选框
      • submit:提交按钮
      • botton:按钮
      • reset:重置
      • placeholder:提供可描述输入字段预期值的提示信息,即在框中显示预期值
      • readonly:readonly=readonly,只读
      • disable:disable=disable,禁用,对所有 input 都有用
      • file:提交文件(需要在 form 表单要加上属性 enctype="multipart/form-data" )
    • checked:当 checked=checked 时,该选项默认被选中
    • name:表单提交项的键,是和服务器通讯时的名称,id 是浏览器端使用的名称,常用于 css 和 js
    • value:表单提交项的值,不同的输入类型,value 属性用法也不同。
    <form action='http://127.0.0.1:8080' method='post'>
    		<p>姓名 <input type="text" name="username"></p>		
    		<p>密码 <input type="password" name="password"></p>
    		
    		<p>爱好</p>
    		<input type="checkbox" name="hobby" value="music">音乐
    		<input type="checkbox" name="hobby" value="movie">电影
    
    		<p>性别</p>
    		<input type="radio" name="gender" value="male">男
    		<input type="radio" name="gender" value="female">女
    
    		<p><input type="submit" value="提交"></p>
    
    	</form>
    
    
    # 提交给服务端的数据格式类似于字典形式
    {'username': 'xxx', 'password': 'xxx', 'hobby': ['music', 'movie'], 'gender': 'male'}
    
    

    上传文件:必须是 post 形式,必须在 form 表单中添加 enctype="multipart/form-data" 属性

    <form action='http://127.0.0.1:8080' method='post' enctype="multipart/form-data" >
        <input type="file" name="file">
    </form>
    
    服务端:
    req.FILES 中
    
    

    服务器端:

    def index(request):
        print request.POST
        print request.GET
        print request.FILES
        for item in request.FILES:
            fileObj = request.FILES.get(item)
            f = open(fileObj.name, 'wb')
            iter_file = fileObj.chunks()
            for line in iter_file:
                f.write(line)
            f.close()
        return HttpResponse('ok')
    
    

    8.2 select 标签

    select 标签下拉列表,属性如下:

    select 属性

    • name:表单提交的键
    • size:选项显示个数
    • multiple:multiple,选择多个选项
    • disabled:disabled,禁用下拉列表

    option 标签属性

    • value:表单提交项的值
    • selected:selected 默认被选中

    optgroup 为每一项添加分组

    // select标签的 value 属性:value=1,等于选择第一个 option
    爱好
    <select name="hobby">
    	<option value="music">音乐</option>
    	<option value="movie">电影</option>
    	<option value="moutain">爬山</option>
    </select>	<br>
    
    省份
    <select name='province'>
    	<optgroup label="湖南省">
    		<option value="changsha">长沙</option>
    		<option value="xiangtan">湘潭</option>
    		<option value="zhuzhou">株洲</option>
    	</optgroup>
    </select>
    
    

    8.3 textarea 标签

    textarea 文本域,通常用作填写简介,属性:

    • name:表单提交项的键
    • clos:文本域列
    • rows:文本域行
    简介
    <textarea name="decs" cols="20px" rows="6px"></textarea>
    
    

    8.4 label 标签

    无其他特殊含义,for 属性可以把 label 绑定到另外一个标签上,使鼠标获得焦点。

    <!--for 属性将 label 与 input 绑定,for 的值必须与 id 一致。从而使得 input 标签,鼠标只需点击 用户名 三个字即可获得焦点-->
    <label for='abc'>用户名</label>
    <input id='abc' type='text'>
    
    

    8.5 fieldset 标签

    将表单内相关元素分组,属性:

    • legend 标签:为 fieldset 元素定义标题
    • disabled:禁用 fieldset
    • name:表单提交项键
    <form>
        <fieldset>
            <legend>健康信息</legend>
            身高:<input type="text" />
            体重:<input type="text" />
        </fieldset>
    </form>
    <p>如果表单周围没有边框,说明您的浏览器太老了。</p>
    
    

  • 相关阅读:
    POJ3320 Jessica's Reading Problem
    POJ3320 Jessica's Reading Problem
    CodeForces 813B The Golden Age
    CodeForces 813B The Golden Age
    An impassioned circulation of affection CodeForces
    An impassioned circulation of affection CodeForces
    Codeforces Round #444 (Div. 2) B. Cubes for Masha
    2013=7=21 进制转换
    2013=7=15
    2013=7=14
  • 原文地址:https://www.cnblogs.com/midworld/p/10847286.html
Copyright © 2011-2022 走看看