高保真的完成下图布局:
首先要分析一下各个模块的布局
我们依旧使用的盒子模型。
首先先分为两个大盒子(红色边框)header 盒子和 content 盒子。
其中content中相对对来说比较简单,就需要添加需要的内容文字就好啦。
header相对于基本作业要复杂一些。
在header中首先要分为两个盒子(绿色边框)第一个盒子head装的是标题,下面的盒子info_box装了三个盒子。包括信息盒子info、评论盒子comment_box评论盒子、分享盒子share_box。
评论盒子comment_box中 分为 join div元素和 comment div元素
分享盒子share_box中 分为sina (微博)qqzone(qq空间)wechat(微信)
大体的布局还是用div元素实现,其中信息盒子与评论盒子打算用p+span元素实现,分享盒子用div+“雪碧图”实现。
标题框和内容框的距离为40px。
三、完成html代码
根据我们上面对各个模块布局的分析,我们接下来就可以写html代码啦~其中在header的info盒子,其中信息盒子与评论盒子打算用p+span元素实现(语义化更好一点),分享盒子用div+“雪碧图”实现。
(这里还是有需要的改进的地方,比如行前面的空格我是使用的 空格键,应该还有更好的方法,请大佬指教嘿嘿~)
代码如下:
<html>
<head>
<title>加分作业
</title>
<link rel="stylesheet" href="css/demo2.css">
</head>
<body>
<div class="container">
<div class="header">
<p class="head">啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦</p>
<div class="info_box">
<p class="info">
<span>2020年5月21日 08:38:23</span><br>
<span class="text">来源:</span>
<span class="sourse">蜡笔小新酱</span>
<span class="icon_1"> </span>
</p>
<div class="comment_box">
<p class="join"><span>0</span>人参与</p>
<p class="comment"><span>0</span>人评论</p>
</p>
</div>
<div class="share_box">
<div class="sina"></div>
<div class="qqzone"></div>
<div class="wechat"></div>
</div>
</div>
</div>
<div class="content">
<p><span> 我的名字是蜡笔小新,我今年五岁,我很快乐,我的妈妈是美牙,我的爸爸是广治
</span><br>我的朋友有</span><br/> 阿呆<br/> 风间
<br/> 正南<br/> 妮妮<br/> 小白<br/></p>
</div>
</div>
</body>
</html>
四、CSS美化
为了尽可能高保真,我们要测量一下各个模块之间的距离。
标题框和内容框的距离为40px
在整个标题盒子 header中,标题head和信息盒子info_box之间的距离30px
在信息盒子中,来源盒子info和评论盒子comment_box的距离是228px
评论盒子comment_box和分享盒子share_box之间的像素是30px
其中来源盒子info中的时间和来源之间的像素是10px
在评论盒子中的 参与和评论之间的像素为20px
在分享盒子中每个图片之间的距离为10px
css代码如下:
* {
margin: 0px;
padding: 0px;
}
.container {
width: 670px;
height: 800px;
margin: auto;
}
.head {
font: bold 24px Microsoft Yahei;
margin-top: 40px;
}
.info {
font: 12px Microsoft Yahei;
color: #999;
margin: 25px 0 5px 0;
line-height: 20px;
width: 350px;
}
.header {
height: 142px;
width: 655px;
border-bottom: 1px solid #828181;
display: flex;
flex-direction: column;
}
.content p {
line-height: 40px;
font: Microsoft Yahei;
color: #636363;
margin-top: 40px;
}
.content p span {
line-height: 15px;
}
.icon_1 {
background: url("../img/icon_1.png") no-repeat 2px center;
padding: 19px;
}
.info_box {
display: flex;
}
.comment_box {
display: flex;
color: #999;
margin: 40px 30px 5px 0;
}
.comment_box p {
font: Microsoft Yahei;
font-weight: lighter;
font-size: 12px;
}
.share_box {
display: flex;
font-size: 12px;
height: 40px;
margin: 32px 0px 5px 0;
}
.join {
margin: 0px 20px;
}
.qqzone {
margin-left: 10px;
}
.wechat {
margin-left: 10px;
}
.comment_box span {
font-family: 'Georgia';
font-size: 16px;
font-style: normal;
font-weight: bold;
color: red;
}
.sina {
background-position: 0px 0px !important;
}
.qqzone {
background-position: 0px -32px !important;
}
.wechat {
background-position: 0 -66px !important;
}
.share_box div {
width: 40px;
height: 30px;
background: url(../img/icon_3.jpg);
}
五、CSS美化分析
1.使用行内元素span标签。作为行内元素span标签使用起来也很方便,作为一个小容器,可以把容器分为多个小容器,方便容器中个别部分应用样式,对于容器中其他部分实现特别的效果。其中在评论盒子中用到。如下图。我们可以看到 0人参与 0人评论 可以用p元素一行完成,但是有一个问题,“0”的字体和颜色和别的字不太一样。我们在实现的过程中可以再多写几个div 然后重新布局但是那样太麻烦了,直接使用行内元素就可以搞定。
html代码如下:
<p class="join"><span>0</span>人参与</p>
<p class="comment"><span>0</span>人评论</p>
css美化:
.comment_box {
display: flex;
color: #999;
margin: 40px 30px 5px 0;
}
.comment_box span {
font-family: 'Georgia';
font-size: 16px;
font-style: normal;
font-weight: bold;
color: red;
}
2.在分享盒子share_box中设置背景图片的时候使用雪碧图。
先来说一说雪碧图是怎么回事
首先把网页中一些背景图片整合到一张图片文件中(png格式)
再利用CSS的"background-image"引入图片,配合"background- repeat"禁止平铺
最后利用css的"background-position"进行背景精确的定位出背景图片的位置(默认起始位置为background-position:0% 0%;如果background-position属性值之设置一个,那么另一个默认为center。
我们需要加载的图片素材是这样的
而我们最后要的效果是这样的,是三张分开的图片,但是都是上面图片的一部分
此时我们就可以用雪碧图啦~先设置 sina wechat qqzone 这三个盒子的大小并使这三个盒子都以这张雪碧图为背景:
.share_box div {
width: 40px;
height: 30px;
background: url(../img/icon_3.jpg);
}
后在各个div中使用background-position进行定位。就是定位到我们想要的部分。
.sina {
background-position: 0px 0px !important;
}
.qqzone {
background-position: 0px -32px !important;
}
.wechat {
background-position: 0 -66px !important;
}
特别要注意一点 在给div添加定位时,要写!important提升指定样式规则的应用优先权。这样才可以定位到不同图片的坐标。
使用雪碧图的优点:如果图片来源于网页的话,就可以减少http请求的次数,提高页面加载速度。方便修改。
六、优化
根据我们以上的效果,我们可以进行一下优化。比如添加背景图片~或者添加鼠标悬停的效果。
在这里,我(突发奇想)设计了此页面的一个深色模式(其实就是把白底黑字换成暗底白色来)还有一些鼠标悬停的效果。
添加背景图片的css代码如下:
.container {
width: 670px;
height: 500px;
margin: auto;
background-position: center;
background-image: url(../img/bgimg.jpg);
background-repeat: no-repeat;
background-size: 100%;
}
添加鼠标悬停效果css代码如下:
.sourse:hover {
color: red;
cursor: pointer;
text-decoration: underline;
}
.comment_box p:hover {
cursor: pointer;
text-decoration: underline;
color: red;
}
.share_box div {
cursor: pointer;
}
高保真:
优化图:
1,添加css时,一定要写这句:
* {
margin: 0px;
padding: 0px;
}
否则会页面的内容不会贴顶,就是总是和页面顶部有一些距离。
2,通过这次实验我更进一步的体会到了盒子模型的一些特点,对boder margin padding 有了更深一步的理解。可以把盒子模型想成一个装在快递盒子里新手机盒。新手机是我们的内容,手机和手机盒的泡沫就是padding(内边框),手机盒子的纸壳就是border(边框),最后手机盒子和快递盒子之间的距离就是margin(外边距)。
TML标签:
所有内容都在<html></html>标签之内;
<head></head>内放的是头部信息,是对页面的描述,不会直接显示在页面中。
<head></head>内的<title></title>中设置的是页面的标题,<title></title>只能放在<head></head>中;
<body></body>是页面的主体,大部分显示内容都定义在这里。
HTML注释:<!-- -->:
注释不允许嵌套
html常用标签:
h标签(标题),HTML定义了<h1></h1>到<h6></h6>六个h标签,分别表示不同大小的字体。h1最大,h6最小。
<br/>只是回车,<p>是段落。<p>前后会有比较大的空白,而<br/>则没有。
<center>居中显示.
<b>、<strong>粗体,<i>、<em>斜体。<u>下划线。
<sub>2</sub>下标,如:H<sub>2</sub>O
<sup>2</sup>上标,如:10<sup>2</sup>
<font></font>字体标签,<font color=“red“ size=“7” face=“隶书”>红色</font>。color(设置颜色) size(1-7) face(设置字体,设置字体是注意用户计算机中必须有该字体才能正常显示)
<hr> color size(厚度) width(长度) align=left/center/right (默认为剧中显示)
<pre> 预格式化 保持本色;
HTML特殊字符:<(小于号,less than);>(大于号,greater than); (空格)。
超链接:<a>标签的一些常用属性:href、title、target、name
插入图片:<img src=“路径”/>
列表:dl→(定义列表),ul→(无序列表), ol→(有序列表)。
表格:<table>;创建行:<tr>;创建单元格:<td>;表页眉:<thead>;表主体:<tbody>;表页脚:<tfoot>;表头:<th>。
rowspan(合并行)、colspan(合并列)
<input>是主要的表单元素,type的可选值:submit(提交按钮)、button(普通按钮)、checkbox表单标签:(复选框)、file(文件选择框)、hidden(隐藏字段)、image(图片按钮)、password(密码框)、radio(单选按钮)、reset(重置按钮)、text(文本框)。
meta标签:(包括在head标签中。主要用来描述页面自身信息,元信息)
<meta name="keywords" content="C#学习资料,4k8k.net,.net开发,软件开发,编程自学网"/>
<meta name="description" content="免费更新最新C#相关技术知识,主要包括:.net基础,网页前端,三层架构,SQL数据库..."/>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />网页编码
<meta http-equiv="Refresh" content="3" />三秒钟后刷新此网页。
<meta http-equiv="Refresh" content="3;url=http://www.4k8k.net" />三秒钟后重定向到新网页。
<meta http-equiv="Cache-Control" content="no-cache" /> 禁止浏览器缓存页面。
<meta name="名字" content="值" />关于网页的描述信息。
<meta http-equiv="名字" content="值" />模拟http响应头信息。
C#编程自学_做最好的.net自学资料站_更多文章请访问:http://www.4k8k.net/
欢迎订阅。
作为一个前端,经常写html文档,但是却很少去在意头部的标签有哪些,也很少在意每个标签的作用,下面我们来详细了解下。
头部的标签,也就是写在<head><head/>里。通常会有6个标签:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
<base href="http://www.baidu.com/images/" target="_blank">
<link rel="stylesheet" type="text/css" href="mystyle.css">
<style type="text/css">
body {font-size:16px}
p {color:blue}
</style>
<script> document.write("Hello World!") </script>
</head>
<body> 文档内容...... </body>
</html>
一、<title>元素。
1.title 标签定义了文档的标题,在HTML文档中是必须的。它会展示在浏览器的工具栏上。
2.如果要展示一个图标,可以再加一个<link>标签,<link>标签的 rel属性为“icon”,后面的
href跟上图片的地址。
<link rel="icon" href="图片url">
二、<base>元素。
base标签描述了基本的链接地址,该标签作为HTML文档中所有的链接的默认链接
<head>
<base href="http://www.php.cn/tpl/Index/Static/img/" target="_blank" />
</head>
<body>
<img src="banner7.jpg"/>
</body>
上面的img标签的src链接的地址就是base里的地址加上img里的地址。
三、<link>元素。
link标签定义了文档与外部资源之间的关系,它通常用于链接到样式表。
<head>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
四、<style>元素。
style标签定义了HTML文档的样式,这个我们经常会使用到,都不会陌生。
五、<meta>元素。
meta标签提供了元数据.元数据也不显示在页面上,但会被浏览器解析。它常用于指定网页的描述,关键词,文件的最后修改时间,作者,和其他元数据。
元数据可以使用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他Web服务。
// 编码格式定义
<meta charset="utf-8">
// 为搜索引擎定义关键词:
<meta name="keywords" content="HTML, CSS, XML, JavaScript">
// 为网页定义描述内容:
<meta name="description" content="头部标签 & 使用">
// 定义网页作者:
<meta name="author" content="Runoob">
// 每30秒钟刷新当前页面:
<meta http-equiv="refresh" content="30">
// 视图层的参数定义
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
/>
// content属性值 :
// width:可视区域的宽度,值可为数字或关键词device-width
// height:同width
// intial-scale:页面首次被显示是可视区域的缩放级别,取值1.0则页面按实际尺寸显示,无任何缩放
// maximum-scale=1.0, minimum-scale=1.0;可视区域的缩放级别,
// maximum-scale用户可将页面放大的程序,1.0将禁止用户放大到实际尺寸之上。
// user-scalable:是否可对页面进行缩放,no 禁止缩放
六、<script>元素。
script标签用于加载脚本文件,比如说javascript,可以直接书写js,也能用于链接外部的js文件。
<script>
document.write("Hello World!")
</script>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
*请认真填写需求信息,我们会在24小时内与您取得联系。