发表于: 2018-07-01 09:58:15

2 706


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 


行内元素和块级元素详细总结:


明天计划的事情:(一定要写非常细致的内容) 

遇到的问题:(遇到什么困难,怎么解决的) 

footer如何保持底部悬浮

最后解决方案 通过对上一个兄弟元素加入向下的内部白 padding 覆盖空白区域来解决

更多方案见收获.


收获:(通过今天的学习,学到了什么知识)


方法一:footer高度固定+绝对定位

  1. <body>
  2. <header>header</header>
  3. <main>content</main>
  4. <footer>footer</footer>
  5. </body>
  1. html{height:100%;}
  2. body{min-height:100%;margin:0;padding:0;position:relative;}
  3. header{background-color: #ffe4c4;}
  4. main{padding-bottom:100px;background-color: #bdb76b;}/* main的padding-bottom值要等于或大于footer的height值 */
  5. footer{position:absolute;bottom:0;width:100%;height:100px;background-color: #ffc0cb;}

首先,设置body的高度至少充满整个屏幕,并且body作为footer绝对定位的参考节点;
其次,设置main(footer前一个兄弟元素)的padding-bottom值大于等于footer的height值,以保证main的内容能够全部显示出来而不被footer遮盖;
最后,设置footer绝对定位,并设置height为固定高度值

方法二:footer高度固定+margin负值

  1. <body>
  2. <div class="container">
  3. <header>header</header>
  4. <main>main content</main>
  5. </div>
  6. <footer>footer</footer>
  7. </body>
  1. html,body{height:100%;margin:0;padding:0;}
  2. .container{min-height:100%;}
  3. header{background-color: #ffe4c4;}
  4. main{padding-bottom:100px;background-color: #bdb76b;}/* main的padding-bottom值要等于或大于footer的height值 */
  5. footer{height:100px;margin-top:-100px;background-color: #ffc0cb;}/* margin-top(负值的)高度等于footer的height值 */

此方法把footer之前的元素放在一个容器里面,形成了container和footer并列的结构:
首先,设置.container的高度至少充满整个屏幕;
其次,设置main(.container最后一个子元素)的padding-bottom值大于等于footer的height值;
最后,设置footer的height值和margin-top负值。

这种方法没有使用绝对定位,但html结构的语义化不如方法一中的结构清晰。

也可以设置负值的margin-bottom在.container上面,此时html结构变化如下:

  1. <body>
  2. <div class="container">
  3. <header>header</header>
  4. <main>main content</main>
  5. <div class="empty"></div>
  6. </div>
  7. <footer>footer</footer>
  8. </body>
  1. html,body{height:100%;margin:0;padding:0;}
  2. .container{min-height:100%;margin-bottom:-100px;}
  3. .empty,footer{height:100px;}

使用一个空的div把footer容器推到页面最底部,同时给container设置一个负值的margin-bottom,这个margin-bottom与footer和.empty的高度相等。

虽然多了一个空的div,语义上也不怎么好,但是相比前面为main元素设置padding-bottom的方法有一个明显的好处:当网页内容不满一屏的时候,如果需要为main元素设置边框、背景色的时候,padding-bottom硬生生地撑出了一片空白,真真是有点丑,但是加个空的div之后,布局方式作用在.empty上,对main的css设置就不影响了,算是一个好处吧!

方法三:footer高度任意+js

  1. <body>
  2. <header>header</header>
  3. <main>main content</main>
  4. <footer>footer</footer>
  5. </body>
  1. html,body{margin:0;padding: 0;}
  2. header{background-color: #ffe4c4;}
  3. main{background-color: #bdb76b;}
  4. footer{background-color: #ffc0cb;}
  5. /* 动态为footer添加类fixed-bottom */
  6. .fixed-bottom {position: fixed;bottom: 0;width:100%;}
  1. $(function(){
  2. function footerPosition(){
  3. $("footer").removeClass("fixed-bottom");
  4. var contentHeight = document.body.scrollHeight,//网页正文全文高度
  5. winHeight = window.innerHeight;//可视窗口高度,不包括浏览器顶部工具栏
  6. if(!(contentHeight > winHeight)){
  7. //当网页正文高度小于可视窗口高度时,为footer添加类fixed-bottom
  8. $("footer").addClass("fixed-bottom");
  9. } else {
  10. $("footer").removeClass("fixed-bottom");
  11. }
  12. }
  13. footerPosition();
  14. $(window).resize(footerPosition);
  15. });


一、行内元素与块级元素

块级元素列表
<address>定义地址
<caption>定义表格标题
<dd>定义列表中定义条目
<div>定义文档中的分区或节
<dl>定义列表
<dt>定义列表中的项目
<fieldset>定义一个框架集
<form>创建 HTML 表单
<h1>定义最大的标题
<h2>定义副标题
<h3>定义标题
<h4>定义标题
<h5>定义标题
<h6>定义最小的标题
<hr>创建一条水平线
<legend>元素为 fieldset 元素定义标题
<li>标签定义列表项目
<noframes>为那些不支持框架的浏览器显示文本,于 frameset 元素内部
<noscript>定义在脚本未被执行时的替代内容
<ol>定义有序列表
<ul>定义无序列表
<p>标签定义段落
<pre>定义预格式化的文本
<table>标签定义 HTML 表格
<tbody>标签表格主体(正文)
<td>表格中的标准单元格
<tfoot>定义表格的页脚(脚注或表注)
<th>定义表头单元格
<thead>标签定义表格的表头
<tr>定义表格中的行
行内元素列表
<a>标签可定义锚
<abbr>表示一个缩写形式
<acronym>定义只取首字母缩写
<b>字体加粗
<bdo>可覆盖默认的文本方向
<big>大号字体加粗
<br>换行
<cite>引用进行定义
<code>定义计算机代码文本
<dfn>定义一个定义项目
<em>定义为强调的内容
<i>斜体文本效果
<img>向网页中嵌入一幅图像
<input>输入框
<kbd>定义键盘文本
<label>标签为 input 元素定义标注(标记)
<q>定义短的引用
<samp>定义样本文本
<select>创建单选或多选菜单
<small>呈现小号字体效果
<span>组合文档中的行内元素
<strong>语气更强的强调的内容
<sub>定义下标文本
<sup>定义上标文本
<textarea>多行的文本输入控件
<tt>打字机或者等宽的文本效果
<var>定义变量
可变元素素列表--可变元素为根据上下文语境决定该元素为块元素或者内联元素
<button>按钮
<del>定义文档中已被删除的文本
<iframe>创建包含另外一个文档的内联框架(即行内框架)
<ins>标签定义已经被插入文档中的文本
<map>客户端图像映射(即热区)
<object>object对象
<script>客户端脚本


二、行内元素与块级函数的三个区别

1.行内元素与块级元素直观上的区别

    行内元素会在一条直线上排列,都是同一行的,水平方向排列

    块级元素各占据一行,垂直方向排列。块级元素从新行开始结束接着一个断行。

2.块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素。

3.行内元素与块级元素属性的不同,主要是盒模型属性上

行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效





返回列表 返回列表
评论

    分享到