HTML基础

新的征程

web前端介绍

web前端开发做什么

pc端web开发;移动端web开发;混合app开发;网页游戏/移动端网页游戏开发;网页特效开发;后台开发(node.js);微信小程序开发等 。ps:由课堂笔记整理,详细文档可到不凡官网咨询老师获取。

我们学什么

参照excel

软件架构

c/s client-server

  • 比如 qq /360 / LoL / war3 / 吃鸡
  • 数据交互采用特有协议
  • 在每台主机上安装
  • 更新/迁移 麻烦
  • 安全性
  • 客户端硬件要求
  • 服务端压力相对较小

b/s broswer-server

  • 比如: qq空间 / 网站后台 / 缴费系统 / 淘宝
  • 数据交换http协议;https协议相对安全
  • 只需要通过浏览器访问特定的(域名/ip),输入登陆账号密码即可使用
  • 更新 主需要服务器更新,客户端浏览器即可使用
  • 服务端压力稍微大一点. 一般复杂的计算会通过缓存或者负载均衡等形式缓解服务器压力.客户端只负责渲染.
  • 浏览器权限有限,cpu的资源调配 和 显卡的计算能力

电脑基本环境配置

  • 常用软件安装

    • ie浏览器 ie8(特殊,存在兼容问题)和ie10等更高级浏览器
    • chrome浏览器,谷歌.当下最好的浏览器. 速度快,方便调试,集成了手机模拟器.
    • firefox 火狐. 后端程序猿的最爱. 方便调试,但是没有手机模拟器.
    • 360浏览器,双核. "极速"(chrome内核)/"兼容"(ie内核)
  • 电脑隐藏文件/ 隐藏后缀名

    • 隐藏文件
    • 隐藏后缀名
  • 输入法

    • 关闭输入法的快捷键
    • 中文使用英文标点

前端基础

HTML

HTML超文本标记语言。

html的结构

html由三部分组成。分为结构、表现、行为。 html页面采用纯文本形式编写,通过html中的不同标签来区分不同的部分和功能。所见即所得!

  • 结构: html的标签构成了整个网页的结构,比如哪里是标题、哪里是段落,哪里是图片。
    • 标签都是成对出现的,比如: <标签></标签>
    • 标签内部可以包含属性,都是以key="value"的形式出现,比如: <标签 属性名="属性名"> 标签的内容 </标签>
    • 文档声明: <!doctype html>,用于声明告诉浏览器,当前页面采用html5的标准来写。
    • 页面的基本结构
        <!doctype html>
    
        <html>
            <head>
                <title>不凡学院</title>
            </head>
            <body>
                欢迎来到不凡学院!
            </body>
    
        </html>
    
  • 表现: 通过css来控制页面的样式。比如字体大小、背景颜色、字体颜色等。。
  • 行为: 通过javascript(简称js) 来控制页面的行为。指的页面和用户的交互行为。

常用标签

  • <html> 页面的跟标签,一个页面只能有一个跟标签。 其余所有的内容 都应该写在html标签内部。

  • <head> 这里的内容不会再浏览器中直接显示,该标签用于辅助浏览器解析页面。

    • <meta> 用于设置网页的元数据,比如使用的字符集编码等 <meta charset="utf-8">
    • 用于设置关键字 <meta name="keywords" content="xxx" />
    • 用于设置描述信息 <meta name="description" content="xxxx" />
  • <title>用于设置页面显示的标题,再浏览器的选项卡头部显示,可能对seo有帮助

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <!-- 字符集编码 meta标签是给浏览器识别的 告诉浏览器使用utf-8形式解析当前页面 -->
        <meta charset="UTF-8">
        <!-- seo 搜索引擎优化 -->
        <!-- 百度搜索引擎抓取的关键词 -->
        <meta name="keywords" content="不凡学院,郑州UI培训,河南郑州UI设计培训,河南郑州前端开发培训,郑州H5培训,郑州WEB前端培训,郑州HTML5前端培训,郑州软件培训">
        <!-- 百度搜索结果展示的内容 -->
        <meta name="description" content="河南郑州不凡学院开设UI设计培训课程和web前端开发课程。北京一线讲师现场教学,学习就等于工作。做自己擅长的事,分享知识与快乐!">
        <title>常用标签</title>
    </head>

  • <body>

    • 用于设置网页的主题,网页中所展示的所有内容 都在body中。
    • 注意: body中的多个换行和多个空格都会被当做一个空格来处理。
  • <h1>~<h6> 标题标签。在html中一共有6级标题。 h1 是最大的标题,一般在页面中只能出现一次。其他的无所谓。

  • <p> 段落标签

  • <br/> 换行标签

  • <hr/> 水平线换行标签

  • <iframe> 内联框架标签,画中画

    • src 内容的链接 比如 src="http://www.baidu.com"
    • widht/height iframe的宽和高
    • frameborder = 0 去掉默认边框
  • <a> 超链接,可以跳转到其他页面

    • href 跳转的地址
    • target: _self 默认 当前页面跳转
    • target: _blank 新的窗口打开
    • target: _parent / _top 配合内联框架使用。再父类窗口/顶级父类窗口跳转页面.
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <iframe src="http://www.baidu.com" width="500px" height="400px" frameborder=0 ></iframe>
        
        <hr>

        <a href="http://www.baidu.com" target="_self">百度</a>
        <a href="http://www.baidu.com" target="_parent">父亲窗口打开百度</a>
        <a href="http://www.baidu.com" target="_top">顶层父类窗口打开百度</a>
    </body>
    </html>

图片及路径

  • <img/>
    • src 图片资源的路径
    • alt 如果图片资源不存在,则显示alt的内容。不是必须的。
    • 图片的格式: jpeg / png /gif(动图) /webp(google) ,使用的时候尽量使用大小合适的图片
  • 相对路径,基于当前的文件
    • 如果是同一级文件,直接引用
    • 如果是同级文件夹的下一级文件,则直接访问同级文件夹再访问下一级,例如: img/bf.png
    • 上一级文件,使用../
    • 多层上一级可以使用../../ 指上一级的上一级
  • 绝对路径
  • 一般采用相对路径。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <!-- 相对路径 -->
        <img src="avatar.jpg" alt="对不起,图片找不到!">
        <hr>
        <img src="img/bf.png">
        <hr>
        <!-- 本地绝对路径 -->
        <img src="D:\不凡学院\html基础\课件\dev\avatar.jpg" alt="">
        <!-- 网络绝对路径 -->
        <hr>
        <img src="https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=2404337643,717943884&fm=58" alt="">
    </body>
    </html>

html基本规范(xhml语法规范)

  • html不区分大小写,但是尽量使用小写
  • html的注释不能嵌套(注释是给代码加说明,不能再页面中显示) 语法:
  • html的标签必须完整. 比如: <p> </p> <p> <p> </p>,明细不是成对的,及时浏览器能解析,但是是错误的!
  • html标签是可以嵌套的.
  • 标签的属性必须加双引号.

字体标签

  • <em> 斜体.少用.
  • <strong> 加粗,表示强调.
  • <i> <b> 单纯的表示斜体和加粗,没用语义化.
  • <sup> 下标 比如: 52
  • <sub> 上标 比如: H2O
    <em>我是谁!</em>
    <strong>who am I ?</strong>
    <i>我是谁!</i>
    <b>who am I ?</b>
    5<sup>2</sup>
    H<sub>2</sub>O

列表

  • 无序列表 ul li
    • 一般使用无序列表.
    • 前面的小黑点或者1,2,3都需要去掉,自己实现样式,方便控制.
    • list-style:none
    • 列表可以相互嵌套
  • 有序列表 ol li
  • 自定义列表 dl dt dd
    <ul>
        <li>箱包</li>
        <li>数码</li>
        <li>咨询
            <ul>
                <li>法律咨询</li>
                <li>数学咨询</li>
            </ul>
        </li>
    </ul>
    <ol>
        <li>起床</li>
        <li>洗脸</li>
        <li>吃饭</li>
    </ol>
    <dl>
        <dt>html基础</dt>
            <dd>基本标签</dd>
            <dd>属性</dd>
        <dt>css基础</dt>
            <dd>css语法</dd>
            <dd>css引入方式</dd>
    </dl>

表单

  • <form> 用于包括输入框,提交数据
    • action 提交的地址,暂时不用理解
    • method 提交数据的方法 get/post,如果不写,默认是get方式.
  • <input> 表单输入框,根据tpye的类型,表现不同的形式
    • type: text 必须 单行文本输入框
    • name: 当前表单的名称 目前必须要有,因为提交的时候后台程序需要通过name属性获取表单的内容.
    • value: xx 当前表单的内容.value是提交的结果.如果设置了vlaue,则是当前表单的默认值.
  • <input>: type:password 密码输入框
  • <input>: type:radio 单选
    • name 必须要有,这里表明当前的单选输入框为一组
    • value 必须要有,因为单选按钮提交的结果是value的值. value一般采用数字编码的形式表示.
    • checked 默认选中
  • <input>: type:checkbox 多选
    • name 同radio
    • value 同radio
    • checked 默认选中
  • <select> option 下拉框
    • name 属性需要设置
    • value 每个option都要设置value
    • selected 默认选中
  • <input>: type:file 上传
    • 当选中的时候 ,实际文件并没有被上传上来
    • multiple 可以实现多选
  • <textarea> 多行文本输入框
    • cols /rows 文本框的宽度和高度
    • name值需要设置,value指的是标签内部的内容
  • <input> type:submit 提交按钮
    • value 按钮显示的内容
    • 点击后表单被提交到 form.action 配置的地址
  • <label> 用于包括输入框的头部和输入框 使之称为一体。多用于单选和多选。
  • readonly 只读属性,输入框内容不能更改。
  • disabled 禁用 表单的值再提交时会被舍弃。
  • <fieldset> <legend> 可以实现表单的分组。
  • get提交
    • 参数被放到地址提交,比如: /D:/abc?username=张三&pwd=123&sex=0&experience=0
    • 不安全
    • 地址栏拼接的参数长度有限,一般是<4k
    • 一般用于获取数据
  • post提交
    • 地址栏不显示提交内容,再请求体显示
    • 相对安全
    • 提交的数据量没有上限
    • 一般用于提交保存数据
    <!-- action 是当前表单提交的地址 -->
    <form action="www.bufanui.com" method="get">
        <fieldset>
            <legend>基本信息</legend>
            用户名: <input type="text" readonly  name="username" value="张三"> <br>
            曾用名: <input type="text" disabled  name="oldname" value="张小三"><br>
            密码: <input type="password" name="pwd"> <br> 
            性别: 
                <label>
                    男: <input type="radio" name="sex"  value="0"> 
                </label>
                <label>
                    女: <input type="radio" checked  name="sex"  value="1"> <br>
                </label>
        </fieldset>
        
        <fieldset>
            <legend>补充信息</legend>
            爱好: 
            <label>
                篮球: <input type="checkbox" name="like" value="basketball">
            </label>
            <label>
                足球: <input type="checkbox" checked name="like" value="football">
            </label>
            <label>
                乒乓: <input type="checkbox" name="like" value="pingpang"><br>
            </label>

        工作年龄: 
            <select name="experience">
                <option value="0">--无--</option>
                <option value="1">1年</option>
                <option value="2" selected>2~3年</option>
                <option value="3">3~5年</option>
            </select> <br>
        上传头像: <input type="file" name="avatar" multiple> <br>
        个人描述: <textarea name="desc" cols="30" rows="4">
                    我对工作有极大地热情,我喜欢写代码!
                    我大学时候是一个德智体美劳全面发展的废柴!
                </textarea> <br>
        </fieldset>
                
        
        <input type="submit" value="提交">
    </form>

转义字符

  • 空格 &nbsp; &#160;
  • < 小于号 &lt; &#60;
  • 大于号 &gt; &#62;

    <p>这是一个 &lt;p&gt;标签</p>
    <p>张&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;三</p>

table 数据表格

  • <table>
    • align(表格的位置) : left| center | right
    • border: 1 边框,同时为td生成边框
    • cellspacing: 10 单元格之间的间距
    • cellpadding: 30 文字和单元格之间的间距
    • bgcolor: 设置表格的背景色
  • <tr>
    • bgcolor: 设置当前行的背景色
    • align: left | center | right 文字对齐方式
  • <th>
  • <td>
    • colspan 表格所占据的列
    • rowspan 表格所占的行
    <!-- 复杂表单 -->
    <table border="1" cellspacing="10" cellpadding="10">
        <tr>
            <th>时间</th>
            <th>周一</th>
            <th>周二</th>
            <th>周三</th>
            <th>周四</th>
            <th>周五</th>
        </tr>
        <tr>
            <td rowspan="2">上午</td>
            <td>语文</td>
            <td colspan="2">数学</td>
            <td>语文</td>
            <td>语文</td>
        </tr>
        <tr>
            <td>思想品德</td>
            <td>思想品德</td>
            <td>思想品德</td>
            <td>思想品德</td>
            <td>思想品德</td>
        </tr>
        <tr>
            <td rowspan="2">下午</td>
            <td>体育</td>
            <td>体育</td>
            <td>体育</td>
            <td>体育</td>
            <td>体育</td>
        </tr>
        <tr>
            <td>自然</td>
            <td>自然</td>
            <td>自然</td>
            <td>自然</td>
            <td>自然</td>
        </tr>

    </table>

css

css全称层叠样式表 (Cascading Style Sheets),用于实现页面的样式。

书写位置

  • 行内样式 <p style="color: red">我是一个p标签</p>
  • 内部样式 <style> p{color:blue;} </style>
  • 引入样式 <link rel="stylesheet" href="style.css">
  • 区别:
    • 行内样式 严重耦合 用的非常少!
    • 内部样式 测试使用,但是当前页面的样式只能再当前页面使用。
    • 引入样式 上线时候使用。 可以再多个页面复用外部样式。

css选择器

  • 标签选择器
  • class选择器
  • id选择器
        /*标签选择器*/
        h1{
            color: red;
        }
        /*class选择器*/
        .h2{
            color: blue;
        }
        /*id选择器*/
        #h3{
            color: orange;
        }
    
    
  • 交集选择器
  • 并集选择器
  • 后代选择器
  • *通配符
        /*标签p 和.p1的交集*/
        p.p1{
            color: red;
        }
        .p2.danger{
            color: blue;
        }
        /*并集选择器 都被选中*/
        .p1,.p2{
            font-size: 30px;
        }
        /*后代选择器 空格*/
        .p3 a{
            color: red;
        }
        /** 通配符 选择所有标签*/
        *{
            /*background-color: pink;*/
        }

css的单位

  • px 像素单位
  • em 基于当前字体的倍数: text-indent: 2em;
  • 颜色
    • 预定义颜色: blue yellow pink purple red 等
    • 十六进制: 每两位表示一种颜色的深度 分别表示 red green blue; 比如: #ff00ff
          十六进制==> 十进制换算
          十进制:    0  1  2  3  4  5  6  7  8  9   
          十六进制:  0  1  2  3  4  5  6  7  8  9   a(10)  b(11)   c(12)  d(13)   e(14)   f(15)
          比如: 1e  ==>  1*16 + e ==> 16+ 14 = 30;
              ff ==> f * 16 + f ==> 15*16 + 15 = 255; 
          // 比如一个颜色是 aabbcc ==> abc, #00ffaa ==> #0fa
      
      
    • rgb: rgb(0,0,255) ==> 绿色 ; rgb和十六进制是可以互换的。
    • rgba: rgba(0,0,255,0.5) ==> 跟rgb一样,a是透明度:0~1; 0.5==> .5

常用属性

属性名称 属性作用
width / height 宽高(块状单位有效) px 百分比 em等
background-color 背景颜色 color
cololr 字体颜色 color
font-size 字体大小 px em等
text-align 文字对齐方式 center left right
text-index 首行缩进 px em等
font-family 字体 微软雅黑 Microsoft YaHei、黑体 SimHei、Arial等
font-weight 字体加粗 100-900.加粗700-900/ bolder lighter normal
font-style 字体样式 Italic 斜体 / normal 正常
line-height 行高 单位: px /倍数 / 百分比 ;- 设置文字的行间距- 单行文字垂直居中 :行高=父类盒子高度
font 字体缩写 `font:italic bolder 20px/1.2 'Arial','Microsoft YaHei'

背景图片

属性名称 属性作用
background-color 背景图片颜色 color
background-image 背景图片 url(‘1.png’);
background-repeat 平铺方式 repeat 、 no-repeat 、 repeat-x 、 repeat-y
background-position 图片位置 left、 right、 top、 bottom、 center
background-attachment 背景滚动 scroll、fixed (注意:基于body的定位)
background 简写(顺序不能错) background: green url(1.jpg) no-repeat center center fixed;
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            body{
                background-image: url('img/banner.jpg');
                background-repeat: no-repeat;
                background-position: left top;
                /*是否跟最滚动*/
                background-attachment: fixed;
            }
            .d1{
                width: 100%;
                height:400px;
                /*background-color: green;*/
                /*background-image: url('img/bf.png');*/
                /*background-repeat: no-repeat;*/
                /*center 默认的是x轴  y轴默认居中*/
                /*跟数学的坐标系是不同的,x轴为正 ,y轴向下正 */
                /*background-position: -35px 30%;*/
                background: green  url('img/bf.png') no-repeat right 200px fixed;
                /*如果设置了fixed 那么背景图片的位置将会基于body*/
                /*background-attachment:fixed;*/
                /*精灵图片 雪碧图 做案例的时候再补充*/
                background-color: purple;
            }
            .d2{
                widows: 100%;
                height: 1000px;
                background-color: pink;
                /*透明度 : 0~1  */
                opacity: .5;
            }
        </style>
    </head>
    <body>
        <!-- div 是一个标签,不表示任何的内容,没有自带样式。只是用于划分结构 -->
        <div class="d1">
            
        </div>
        <div class="d2">
            
        </div>
    </body>
    </html>

标签的表现形式

  • 块状标签 独占一行,宽高有效。 比如: div p h1~h6 form table hr br ul>li ol>li dl>dt/dd
  • 行内块标签 可以同一行显示,宽高有效。 比如: input select img button
  • 行内标签 可以同一行显示,但是宽高无效, margin-top/margin-bottom 无效。。 比如: a span strong del ins em i b 等字体标签

盒子模型

CSS处理网页时,它认为每个元素都包含在一个不可见的盒子里。包含内容区域、 padding(内边距) 、 border(边框)、margin(盒子与盒子的距离)

  • padding
    • padding:10px 20px 30px 40px 这样会设置元素的上、右、下、左四个方向的内边距。
    • padding:10px 20px 30px; 分别指定上、左右、下四个方向的内边距
    • padding:10px 20px; 分别指定上下、左右四个方向的内边距
    • padding:10px;同时指定上左右下四个方向的内边距
    • 同时在css中还提供了padding-top、padding-left、padding-right、padding-bottom分别用来指定四个方向的内边距。
    <style>
        .d1{
            width: 300px;
            height: 300px;
            background-color: green;
            /*padding: 50px  100px 30px 80px;
            padding-left: 100px;*/
            padding: 100px;
        }
    </style>

  • margin
    • 用法和padding类似,同样也提供了四个方向的margin-top/right/bottom/left。
    • margin: xxx auto;可以使元素居中。
    • 嵌套崩塌:两个盒子发生嵌套的时候,给子类设置maring会给父类造成一种崩塌现象,子类的margin-top没有效果,而直接作用到父类。
    • 解决方案: 1. 父类 overflow: hidden ; 2. 父类 设置极小的padding
    • 重叠: 如果垂直两个块状元素同时设置了margin-bottom和margin-top,那么这两个值将会发生重叠,不会累加,哪个值大用哪个。
    • margin-top/margin-bottom 对于行内元素无效。
    .d2{
        width:200px;
        height:200px;
        background-color: red;
        /*margin: 100px;
        margin-top: 200px;*/
        /*d2将会左右居中*/
        margin: 100px auto;
    }
    <!-- ======================= -->
    <!-- 当两个盒子发生嵌套的时候,给子类设置maring会给父类造成一种崩塌现象,子类的margin-top没有效果,而直接作用到父类 -->
    <!-- 解决方案: 1. 父类  overflow: hidden
               2. 父类 设置极小的padding -->
    <div class="box">
        <div class="inner-box">
            
        </div>
    </div>

    <hr>
    
    <!-- 如果垂直两个块状元素同时设置了margin-bottom和margin-top,那么这两个值将会发生重叠,不会累加,哪个值大用哪个 -->
    <div class="box2">
        
    </div>
    <div class="box3">
        
    </div>  
  • border
    • 可以在元素周围创建边框,边框是元素可见框的最外部。
    • border:1px solid red 分别指定了边框的宽度、颜色和样式,是一种缩写: border-widht: border-style border-color
    • border-style: none (默认) / dashed(虚线) / dotted(点) / solid(实线) / double(双实线)
    • 可以单独设置某一条边框: border-right: 20px solid blue;

    .d1{
        width: 200px;
        height:200px;
        background-color: green;
        /*简写属性*/
        /*border: 10px solid red;*/
        border-width: 10px;
        border-style: solid;
        border-color: red;
        /*右边单独添加20像素*/
        border-right: 20px solid blue;
    }

  • 影响盒子大小的因素

    • border
    • padding 特殊:继承的盒子在父盒子宽度范围内,padding值不会影响该盒子大小。
  • display 我们可以通过修改display来修改元素的性质。
    – block:设置元素为块元素
    – inline:设置元素为行内元素
    – inline-block:设置元素为行内块元素
    – none:隐藏元素

    • 转换的必要性:比如可以把a标签转换为块状元素,进而实现一个按钮的样式。
  • visibility 和display不同,使用visibility隐藏一个元素,隐藏后其在文档中所占的位置会依然保持,不会被其他元素覆盖。

    .baidu{
            /*display 可以改变元素的表现形式*/
            display: inline-block;
            width:300px;
            height:300px;
            background-color: pink;
        }
    .p1{
            /*display:none;*/
            visibility:hidden;
        }

  • overflow 相关标签里面的内容超出了样式的宽度和高度时如何处理
    – visible:默认值
    – scroll:添加滚动条
    – auto:根据需要添加滚动条
    – hidden:隐藏超出盒子的内容
    .d1{
            width: 200px;
            height: 200px;
            background-color: green;
            overflow: auto;
            /*overflow: scroll;
            overflow: hidden;*/
        }

文档流

  • 块状标签独占一行
  • 行内元素可以同一行显示,如果不够会自动换行
  • 自上而下的展示

浮动

浮动指的是使元素脱离原来的文本流,在父元素中浮动起来。

  • 块级元素和行内元素都可以浮动,当一个行内元素浮动以后将会自动变为一个块级元素.
  • 当一个块级元素浮动以后,宽度会默认被内容撑开,所以当漂浮一个块级元素时我们都会为其指定一个宽度。
    当一个元素浮动以后,其下方的元素会上移。元素中的内容将会围绕在元素的周围。
  • 浮动会使元素完全脱离文本流,也就是不再在文档中在占用位置。
  • 元素设置浮动以后,会一直向上漂浮直到遇到父元素的边界或者其他浮动元素。
  • 元素浮动以后即完全脱离文档流,这时不会再影响父元素的高度。也就是浮动元素不会撑开父元素。
  • 浮动元素默认会变为块元素,即使设置display:inline以后其依然是个块元素。

浮动的影响

  • 如果子类元素设置了浮动,而父类元素没有设置高度,或者高度比子类元素小,那么子类元素脱离了文档流,就无法把父类盒子撑开。那么整个文档的结构将受到破快。
  • 清除浮动的影响: clear: left/right/both 不允许当前元素的left/right/both有浮动元素。
    • 在浮动元素的最后面追加一个空的div,设置clear:both即可清除浮动的影响。
  • 因为浮动会对文档流造成影响,所以能用流式布局 就不要使用浮动。
  • 补充:1.display:inline-block 标签的换行符会被显示为空格 2.float:right 会改变标签的前后顺序。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            *{
                margin: 0;
                padding: 0;
            }
            .header{
                width: 100%;
                height: 100px;
                background-color: green;
            }
            .content{
                width: 100%;
                /*height: 500px;*/
                background-color: pink;
            }
            /*同级要浮动,都浮动*/
            .content .aside{
                float:left;
                width: 200px;
                height: 300px;
                background-color:red;
            }
            .content .main{
                float:left;
                width: 800px;
                height:900px;
                background-color: gray;
            }
            .footer{
                width: 100%;
                height: 100px;
                background-color: black;
            }
            /*不允许当前元素左右出现浮动元素  这样可以清除浮动的影响*/
            .clr{
                clear: both;
            }
        </style>
    </head>
    <body>
        <div class="header">
            
        </div>
        <div class="content">
            <div class="aside">
                
            </div>
            <div class="main">
                
            </div>
            <div class="clr"></div>
        </div>
        <div class="footer">
            
        </div>
    </body>
    </html>

定位

通过postion属性可以实现元素的定位。元素定位之后,需要通过设置left和top值对元素定位。

  • static 默认
  • relative 相对定位。 相对元素本身的位置定位。
    • 当开启了相对定位以后,可以使用top、right、bottom、left四个属性对元素进行定位。
    • 如果不设置元素的偏移量,元素位置不会发生改变。
    • 相对定位不会使元素脱离文本流。元素在文本流中的位置不会改变。
    • 相对定位不会改变元素原来的特性。
    • 相对定位会使元素的层级提升,使元素可以覆盖文本流中的元素。
    .d1{
        position: relative;
        left: 100px;
        top: 100px;
        width: 200px;
        height: 200px;
        background-color: green;
    }

  • absolute 绝对定位指使元素相对于html元素或离他最近的祖先定位元素进行定位。
    • 当开启了绝对定位以后,可以使用top、right、bottom、left四个属性对元素进行定位。
    • 绝对定位会使元素完全脱离文本流。
    • 绝对定位的块元素的宽度会被其内容撑开。
    • 绝对定位会使行内元素变成块元素。
    • 一般使用绝对定位时会同时为其父元素指定一个相对定位,以确保元素可以相对于父元素进行定位。
    .d1{
        /*有绝对的事情吗?绝对的值必须有参照物*/
        /*如何才能既保证父类有定位元素 而且父类不会再原来的位置偏移*/
        /*子绝父相*/
        position: relative;
        left: 0;
        top: 0;
    /*  left: 100px;
        top: 100px;*/
        margin-left: 100px;
        width:400px;
        height:400px;
        background-color: green;
    }
    .d11{
        position: absolute;
        left: 100px;
        top: 100px;
        width:150px;
        height: 150px;
        background-color: red;
    }

    <div class="d1">
        <div class="d11">
            
        </div>
    </div>

  • fixed 固定定位。元素会被锁定在屏幕的某个位置上,当访问者滚动网页时,固定元素会在屏幕上保持不动。
    • 固定定位不占据原来的位置,会脱标。
    • 给元素设置固定定位之后,元素位置从浏览器左上角出发。
    • 可以将行内元素转换为行内块元素。
    .zx{
            position: fixed;
            right: 100px;
            bottom: 200px;
            width: 200px;
            height: 200px;
            background-color: red;
        }

    <a class="zx" href="#">
        w shi a
    </a>

  • z-index 当元素开启定位以后就可以设置z-index这个属性。默认是0.值越大,越靠上。
    • z-index可以指定一个整数作为参数,值越大元素显示的优先级越高,也就是z-index值较大的元素会显示在网页的最上层。
    .d1,.d2,.d3{
        position: fixed;
        left: 0;
        top:0px;
        width: 200px;
        height: 200px;
        background-color: green;
    }
    .d1{
        z-index: 9;
    }
    .d2{
        left:30px;
        top: 30px;
        background-color: blue;
        z-index:2;
    }
    .d3{
        left: 80px;
        top: 80px;
        background-color: red;
        z-index: 0;
    }


    <div class="d1">
        d1
    </div>
    <div class="d2">
        d2
    </div>
    <div class="d3">
        d3
    </div>

规避脱标流

经验: 一般布局采用标准流,如果布局实现不了用浮动。定位一般用于解决小范围的某个标签的位置。

  • 能用标准流(没有脱标)解决就不用浮动
  • 解决不了就考虑有浮动(页面布局类型,“不完全脱标”)
  • 浮动解决不了用定位(小图标,完全脱标,不影响内容)

结束

html和css基础内容基本概况完毕,当然只掌握这些内容是不够的。只要跟着老师的教程走,耐心学,三四个案例下来就可以完全掌握页面基础知识。期间对于类命名,组织规则及实现技巧,都会一一说到。
也可添加丁老师微信mizheyanxiao,加入微信前端技术交流群,一块学习一块提高。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,748评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,474评论 1 45
  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 2,336评论 0 7
  • 常识 简称 html是hyperText markup language的缩写,译为超文本标记语言 css是Cas...
    丁俊杰_阅读 374评论 0 0
  • 犹记得从小学开始,只要班里有同学流鼻血,老师都会说:“抬头。”但,上了大学以后我们却发现这种做法是错误的,暑假实践...
    糖棠坣糖阅读 776评论 1 1