本周做了B站第一部分的练习,并利用工作的间隙做了一部分CSDN首页的模仿练习,自己的体会是,布局和基本样式没有太大问题,但是熟练程度有待进一步提高,主要是死磕一个比较成熟的案例,B站课程练习算是一个开始,之前做了很多小练习,是张开眼睛看,帮我打开前端的HTML、CSS的世界,下面不仅要看清楚想清楚,而且要自己动手做出来。
练习B站的过程主要遇到以下问题:
问题1
因为游戏中心插入子元素div,被撑开,导致导航栏元素位置混乱
解决1
父元素-游戏中心 position: relative;子元素-详情detail position: absolute;绝对定位脱离文档流,不占据原来的位置。
问题2
子元素设置浮动,父元素高度塌陷
解决2
.clearfix:after{
content:"";
display:block;
height:0;
clear:both
}
image.png
问题3
和老师设置了一样的高度,但明显被撑开
解决3
找了很长时间,原来是写错了元素标签,把ul写成div了,本来是ul和li搭配结果变成div包着li,结果出现了意想不到的问题,做的过程中还遇到一个问题就是自己设置的z-index不起作用,最后发现是自己写作了值z-index:300px;只后面多写了px单位。
image.png
自己写页面样式的时候,前端代码该怎么写,有什么规范,用那种类名好,层次关系,以及样式的顺序等等都是让我有过困惑的地方
然后就找到一个NEC规范,一些要点如下:
HTML基础设施
- 文件应以“<!DOCTYPE ......>”首行顶格开始,推荐使用“<!DOCTYPE html>”。
- 必须申明文档的编码charset,且与文件本身编码保持一致,推荐使用UTF-8编码<meta charset="utf-8"/>。
- 根据页面内容和需求填写适当的keywords和description。
- 页面title是极为重要的不可缺少的一项。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>NEC:更好的CSS方案</title>
<meta name="keywords" content=""/>
<meta name="description" content=""/>
<meta name="viewport" content="width=device-width"/>
<link rel="stylesheet" href="css/style.css"/>
<link rel="shortcut icon" href="img/favicon.ico"/>
<link rel="apple-touch-icon" href="img/touchicon.png"/>
</head>
<body>
</body>
</html>
结构顺序和视觉顺序基本保持一致
- 按照从上至下、从左到右的视觉顺序书写HTML结构。
- 有时候为了便于搜索引擎抓取,我们也会将重要内容在HTML结构顺序上提前。
- 用div代替table布局,可以使HTML更具灵活性,也方便利用CSS控制。
- table不建议用于布局,但表现具有明显表格形式的数据,table还是首选。
按照属性的重要性按顺序书写
-
先显示定位布局类属性,后盒模型等自身属性,最后是文本类及修饰类属性。
image.png
常用标签适用规范
<a></a> 超链接/锚 a不可嵌套a
<button></button> 按钮 不可嵌套表单元素
<li></li> 列表项 只能以ul或ol为父容器
<table></table> 表格 只可嵌套表格元素 主要属性:width,align,background,cellpadding,cellspacing,summary,border
<dl></dl> 定义列表 只能嵌套dt和dd
<dt></dt> 定义列表中的定义术语 只能以dl为父容器,对应多个dd
<dd></dd> 定义列表中的定义(描述内容) 只能以dl为父容器,对应一个dt
下周计划(8月22日-8月28日)
完成B站练习2遍
网友评论