定位 背景 表单 表格

1. 定位----position

定位指的就是将指定的元素摆放到页面的任意位置,通过定位可以任意的摆放元素.通过position来设置元素的定位.

  • 可选值
    • static:默认值,元素没有开启定位
    • relative:相对定位
    • absolute:绝对定位
    • fixed:固定定位,绝对定位的一种.

1. 不开启定位--static

position: static;
left:100px
<!-- 不开启定位,有偏移量也不移动 -->

position != static时,即为开启了定位;

2. 相对定位-relative

  • position: relative;
    1. 当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
    2. 相对定位是相对于元素在文档流中原来的位置进行定位
    3. 相对定位的元素不会脱离文档流,元素移动后原来的位置还在
    4. 相对定位会使元素提升一个层级
    5. 相对定位不会改变元素的性质,块还是块,内联还是内联
    6. 相对定位不会导致元素的宽度丢失
  • 设置偏移量;
    • left:元素相对于其定位位置的左侧偏移量
    • right:元素相对于其定位位置的右侧偏移量
    • top:元素相对于其定位位置的上边的偏移量
    • bottom:元素相对于其定位位置下边的偏移量
      • left:100px
    • 偏移量一般需要设置两个,水平 垂直

3. 绝对定位--absolute

  • 绝对定位:
    1. 开启绝对定位,会使元素脱离文档流
    2. 开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化,但由于开启绝对定位脱离了文档流,定位元素后面的元素会上移
    3. 绝对定位是相对于离他最近的、开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位,都会同时开启父元素的相对定位)
      • 如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口左上角(0px 0px)进行定位
    4. 绝对定位会使元素提升一个层级
    5. 内联元素变成块元素,对内联元素设置的宽高生效,块元素的宽度和高度默认都被内容撑开
  • 偏移量:-----水平 垂直
    • left:200px;
    • left:200px;

4.固定定位---fixed

  • position:fixed;
    特殊的绝对定位它的大部分特点都和绝对定位一样
  • 固定定位与绝对定位的不同:
    • 固定定位永远都会相对于浏览器窗口进行定位
    • 固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动
    • IE6不支持固定定位
  • 偏移量: --左右 上下
    • left:100px;
    • top:200px;

2. 元素的层级---z-index

  • z-index:指定一个正整数,设置元素层级,值越高会优先显示
    • 如果定位元素的层级是一样,则下边的元素会盖住上边的
    • z-index只能对开启定位的元素使用,没有开启定位的元素不能使用
    • 父元素的层级再高,也不能高过子元素

3. 透明度 ----opacity

  • opacity:设置元素北京的透明,值在:0-1之间
    • 0 :完全透明
    • 1 :完全不透明
    • 0.5:半透明
  • 在ie8 以及以下不能用,解决方法如下:
    • filter:alpha(opacity=50);----(0-100)
      • 0:完全透明
      • 100:完全不透明
      • 50:半透明

4. 背景---background-image

  • background-image:url(img/2.jpg)
    • 图片使用相对路径
  • 如果元素小于图片的大小,默认显示左上角的图片,
  • 元素等于图片大小,讲北京图片全部显示
  • 如果元素大于图片的大小,默认用图片大小来平铺铺满整个元素
    • 图片不平铺元素时的设置---background-repeat
      • background-repeate:repeate默认值,背景图片会双方向(水平 垂直)重铺(平铺)
      • background-repeate:no-repeat 不平铺
      • background-repeate:repeate-x----水平方向平铺
      • background-repeate:repeate-y----垂直方向平铺
  • 同时为元素指定背景颜色和背景图片,背景颜色在背景图片的后面
.body{
    background-color:#bfa
    background-image:url(../img/1.jpg)       
}
  • 可以用图片平铺的效果来实现背景颜色是渐变的导航条
    • 截取渐变颜色的导航条,垂直方向上的1px
    • 设置x方向的平铺

1. 背景的偏移与定位

  • background-position:调整背景图片在元素中的位置

  • 可选项:

    • 该属性可以使用 top right left bottom center中的两个值来指定一个背景图片的位置
      • top left
      • bottom left
      • center center
    • 如果中给出一个值,则第二个值默认是center
  • xpx ypx---直接给定两个偏移量

    • 第一个值是水平偏移量
      • 如果指定的是一个正值,则图片会向右移动指定的像素
      • 如果指定的是一个负值,则图片会向左移动指定的像素
    • 第二个是垂直偏移量
      • 如果指定的是一个正值,则图片会向下移动指定的像素
      • 如果指定的是一个负值,则图片会向上移动指定的像素
  • background-attachment用来设置背景图片是否随页面一起滚动

    • 可选值:
      • scroll,默认值,背景图片随着窗口滚动
      • fixed,背景图片会固定在某一位置,不随页面滚动
    • 不随窗口滚动的图片,我们一般都是设置给body,而不设置给其他元素

2. 雪碧图-----优化按钮闪烁问题

  • 问题描述:当我们为一个按钮在不同的状态下设置不同的亮度时, 做完功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,这个闪烁会造成一次不佳的用户体验

  • 产生问题的原因:
    背景图片是以外部资源的形式加载进网页的,浏览器每加载一个外部资源就需要单独的发送一次请求,但是我们的外部资源并不是同时加载,浏览器会在资源被使用时才去加载资源,我们这个练习,一上来浏览器只会加载link.png
    由于hover和active的状态没有马上触发,所以hover.png和active.png并不是立即加载的,当hover被触发时,浏览器才去加载hover.png,当active被触发时,浏览器才去加载active.png
    由于加载图片需要一定的时间,所以在加载和显示过程会有一段时间,背景图片无法显示,导致出现闪烁的情况

  • 解决问题:

    • 为了解决该问题,可以将三个图片整合为一张图片,这样可以同时将三张图片一起加载,就不会出现闪烁的问题了
    • 然后再通过background-position来切换要显示的图片的位置,这种技术叫做图片整合技术(CSS-Sprite)
    • 优点:
      1. 将多个图片整合为一张图片里,浏览器只需要发送一次请求,可以同时加载多个图片,提高访问效率,提高了用户体验。
      2. 将多个图片整合为一张图片,减小了图片的总大小,提高请求的速度,增加了用户体验

5. 简写背景属性

background-color:red;
background-image:url(/img/1.jpg);
background-position:center center;
background-repeat: no-repeat;
background-attachment:fixed;
<!-- 简写背景属性 -->
background:red  url(/img/1.jpg) center center no-repeat fixed

  • 没有数量要求,没有顺序要求,不写的样式就是用默认值

6. 表格----table

  • table创建表格
  • th :创建表头,会有默认的字体,加粗
  • tr创建表格中的行,有几行就有几个tr
  • td创建单元格,有几个单元格就创建几个td,或者说列

  • rowspan用来设置纵向的合并单元格
  • colspan用来设置纵向的合并单元格
  • border-collapse可以用来设置表格的边框合并
    • border-collapse: collapse;
  • border-spacing
    • table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离
<body>
    <!-- table创建表格 -->
    <table border="1" width="40%" align="center">
        <!-- tr创建表格中的行,有几行就有几个tr -->
        <tr>
            <!-- td创建单元格,有几个单元格就创建几个td,或者说列 -->
            <td>A1</td>
            <td>A2</td>
            <td>A3</td>
            <td>A4</td>
        </tr>
        <tr>
            <td>B1</td>
            <td>B2</td>
            <td>B3</td>
            <!-- rowspan用来设置纵向的合并单元格 -->
            <td>B4</td>
        </tr>
        <tr>
            <td>C1</td>
            <td>C2</td>
            <td rowspan="2">C3</td>
            <td>C4</td>
        </tr>
        <tr>
            <td>D1</td>
            <td>D2</td>
            <!-- <td>D3</td> -->
            <td>D4</td>
        </tr>
        <tr>
            <td>E1</td>
            <td>E2</td>
            <!-- colspan用来设置纵向的合并单元格 -->
            <td colspan="2">E3</td>
            <!-- <td>E4</td> -->
        </tr>
    </table>
</body>
  • 设置表格的样式
<style type="text/css">


    table{
        /*设置表格的宽度*/
        width: 300px;
        /*居中*/
        margin: 0 auto;
        /*边框*/
        /*border:1px solid black;*/
        /*table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离*/
        /*border-spacing: 10px;*/
        /*
        border-collapse可以用来设置表格的边框合并
        如果设置了边框合并,则border-spacing自动失效
        */
        border-collapse: collapse;
        /*设置背景样式*/
        /*background-color: #bfa;*/
    }
        /*设置边框*/
    th, td{
        border: 1px solid black;
    }
    /*设置隔行变色*/
        /*ie8不支持,ie9以及以上支持*/
    tbody > tr:nth-child(even){
        background-color: #bfa;
    }
    /*鼠标移入到tr以后,改变颜色*/
        /*ie6不支持*/
    tr:hover{
        background-color: yellow;
    }       
</style>

7. 长表格

  • 表格
    • thead 表头,永远会显示在表格的头部
    • tbody 表格主体,永远都会显示表格的中间
    • tfoot 表格底部,永远都会显示表格的底部
    • 三者的显示和代码顺序无关,通常情况下,将thead tfoot 写在一起,便于修改和检查
  • 三个部分的分析
    • 这三个标签的作用,就来区分表格的不同的部分,他们都是table的子标签,都需要直接写到table中,tr需要写在这些标签当中
    • 如果表格中没有写tbody,浏览器会自动在表格中添加tbody,并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素
      • 通过table > tr 无法选中行 需要通过tbody > tr
<thead>
    <tr>
        <th>日期</th>
        <th>收入</th>
        <th>支出</th>
        <th>合计</th>
    </tr>
</thead>


<tfoot>
    <tr>
        <td></td>
        <td></td>
        <td>合计</td>
        <td>100</td>
    </tr>
</tfoot>

<tbody>
    <tr>
        <td>2017.03.01</td>
        <td>500</td>
        <td>300</td>
        <td>2000</td>
    </tr>
    <tr>
        <td>2017.03.01</td>
        <td>500</td>
        <td>300</td>
        <td>2000</td>
    </tr>
    <tr>
        <td>2017.03.01</td>
        <td>500</td>
        <td>300</td>
        <td>2000</td>
    </tr>
</body>

8. 表格的布局

  • table>(tr>td)*3
  • 表格的列数由td最多的那行决定
  • 表格是可以嵌套,可以在td中在放置一个表格

9. clearfix

<style type = 'text/css'>
    .clearfix:befor,.clearfix:after{
        content: '';
        display: table;
        clear: both;
    }
    .clearfix{
        zoom:1;
    }
</style>
<body>
    <div class="box3 clearfix">
        <div class="box4"></div>
    </div>

    <div class="box1 clearfix">
        <div class="box2"></div>
    </div>
</body>

9.表单

  • 表单的作用就是用来将用户信息提交给服务器的
    • 比如:百度的搜索框 注册 登录这些操作都需要填写表单

1. form----创建表单

* form标签中必须指定一个action属性,该属性指向的是一个服务器的地址
    * 当我们提交表单时将会提交到action属性对应的地址
* 使用form创建的仅仅是一个空白的表单,我们还需要向form中添加不同的表单项

2. filedset

* 在表单中可以使用fieldset来为表单项进行分组,可以将表单项中的同一组放到一个fieldset中
* 在fieldset可以使用legend子标签,来指定组名

3. input ----文本框

* 使用input来创建一个文本框,它的type属性是text
    * 如果希望表单项中的数据会提交到服务器中,还必须给表单项指定一个name属性,name表示提交内容的名字

* 用户填写的信息会附在url地址的后边以查询字符串的形式发送给服务器:url地址?查询字符串
    * 格式:  
    属性名=属性值&属性名=属性值&属性名=属性值&……
* 在文本框中也可以指定value属性值,该值将会作为文本框的默认值显示

4. lable

* 该标签可以指定一个for属性,该属性的值需要指定一个表单项的id值

5. 单选按钮

  • 使用input来创建一个单选按钮,它的type属性使用radio
  • 单选按钮通过name属性进行分组,name属性相同是一组按钮
  • 像这种需要用户选择但是不需要用户直接填写内容的表单项,还必须指定一个value属性,这样被选中的表单项的value属性值将会最终提交给服务器
  • 如果希望在单选按钮或者是多选框中指定默认选中的选项,则可以在希望选中的项中添加checked

6. 多选框

使用input创建一个多选框,它的type属性使用checkbox

7. 下拉列表

  • 使用select来创建一个下拉列表
    • 下拉列表的name属性需要指定给select,而value属性需要指定给option

    • 可以通过在option中添加selected="selected"来将选项设置为默认选中

    • 当为select添加一个multiple="multiple",则下拉列表变为一个多选的下拉列表

8. 下拉列表分组---optgroup

  • 同一个optgroup中的选项是一组,
  • 可以通过label属性来指定分组的名字

9 .文本域---text---多行输入

<body>
    自我介绍<textarea name="info"></textarea>
</body>

10. 按钮---input

  • 提交按钮
    • 提交按钮可以将表单中的信息提交给服务器
    • 使用input创建一个提交按钮,它的type属性值是submit
    • 在提交按钮中可以通过value属性来指定按钮上的文字
        <input type="submit" value="注册" />
    
  • 重置按钮
    <!-- <input type="reset">可以创建一个重置按钮,点击重置按钮以后表单中内容将会恢复为默认值 -->
    <input type="reset">
    
  • 单纯按钮
    <!-- 使用input type=button可以用来创建一个单纯的按钮,这个按钮没有任何功能,只能被点击 -->
    <input type="button" value="按钮">
    

11. 按钮---button

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,727评论 1 92
  • 定位: 定位指的就是将指定的元素摆放到页面的任意位置通过定位可以任意的摆放元素 通过position属性来设置元素...
    咻咻咻滴赵大妞阅读 247评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 概述 在网易云课堂学习李南江老师的《从零玩转HTML5前端+跨平台开发》时,所整理的笔记。笔记内容为根据个人需求所...
    墨荀阅读 2,331评论 0 7
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,304评论 2 66