搭建一款产品原型时,萌生了学一点前端的想法,记录所学,备忘之用。
里面的内容很基础,适合入门之用,同时也支持在线编辑器,可以直接所见所得
先从一篇支持响应式的博客布局开始
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<style>
* {
box-sizing: border-box;
}
body {
font-family: 微软雅黑;
padding: 10px;
background: #f1f1f1;
}
/* 头部标题 */
.header {
padding: 30px;
text-align: center;
background: white;
}
.header h1 {
font-size: 50px;
}
/* 导航条 */
.topnav {
overflow: hidden;
background-color: #333;
}
/* 导航条链接 */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
/* 链接颜色修改 */
.topnav a:hover {
background-color: #ddd;
color: black;
}
/* 创建两列 */
/* Left column */
.leftcolumn {
float: left;
width: 75%;
}
/* 右侧栏 */
.rightcolumn {
float: left;
width: 25%;
background-color: #f1f1f1;
padding-left: 20px;
}
/* 图像部分 */
.fakeimg {
background-color: #aaa;
width: 100%;
padding: 20px;
}
/* 文章卡片效果 */
.card {
background-color: white;
padding: 20px;
margin-top: 20px;
}
/* 列后面清除浮动 */
.row:after {
content: "";
display: table;
clear: both;
}
/* 底部 */
.footer {
padding: 20px;
text-align: center;
background: #ddd;
margin-top: 20px;
}
/* 响应式布局 - 屏幕尺寸小于 800px 时,两列布局改为上下布局 */
@media screen and (max-width: 800px) {
.leftcolumn, .rightcolumn {
width: 100%;
padding: 0;
}
}
/* 响应式布局 -屏幕尺寸小于 400px 时,导航等布局改为上下布局 */
@media screen and (max-width: 400px) {
.topnav a {
float: none;
width: 100%;
}
}
</style>
</head>
<body>
<div class="header">
<h1>我的网页</h1>
<p>重置浏览器大小查看效果。</p>
</div>
<div class="topnav">
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#">链接</a>
<a href="#" style="float:right">链接</a>
</div>
<div class="row">
<div class="leftcolumn">
<div class="card">
<h2>文章标题</h2>
<h5>2019 年 4 月 17日</h5>
<div class="fakeimg" style="height:200px;">图片</div>
<p>一些文本...</p>
<p>菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!</p>
</div>
<div class="card">
<h2>文章标题</h2>
<h5>2019 年 4 月 17日</h5>
<div class="fakeimg" style="height:200px;">图片</div>
<p>一些文本...</p>
<p>菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!</p>
</div>
</div>
<div class="rightcolumn">
<div class="card">
<h2>关于我</h2>
<div class="fakeimg" style="height:100px;">图片</div>
<p>关于我的一些信息..</p>
</div>
<div class="card">
<h3>热门文章</h3>
<div class="fakeimg"><p>图片</p></div>
<div class="fakeimg"><p>图片</p></div>
<div class="fakeimg"><p>图片</p></div>
</div>
<div class="card">
<h3>关注我</h3>
<p>一些文本...</p>
</div>
</div>
</div>
<div class="footer">
<h2>底部区域</h2>
</div>
</body>
</html>
效果如下所示:
我的网页
重置浏览器大小查看效果。
链接 链接 链接 链接
文章标题
2019 年 4 月 17日
图片
一些文本...
菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!
文章标题
2019 年 4 月 17日
图片
一些文本...
菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程 - 学的不仅是技术,更是梦想!
关于我
图片
关于我的一些信息..
热门文章
图片
图片
图片
关注我
一些文本...
底部区域
代码量有限,但是已经初具规模,页面会根据设备的屏幕宽度,自动调整为两列或是一列显示。
总结归纳一部分心得,因为笔者是CSS初学,内容难免过于浅显:
其实笔者之前一直都觉得html布局很神奇,不管css怎么写,各个元素总是能找到自己合适的位置,并且组合在一起有机的呈现出来(虽然很多时候不是我想要的样子 笑)。但是既然叫超文本标记语言,就说明html和我们平时写纯文字一样,存在某种关联。
就好比我们写文字是一行一行写,写完之后另起一行,整体看是从上而下的纵向布局——html其实同理。
从最上边的头部区域、菜单区域、内容区域再到底部区域,大致如下:
而后我们再来调整各个区域内部的细节。
float —— 浮动布局,实现纵向布局区域内的横向布局(一个曾经困扰了我很久的话题,😊)
用起来其实也很简单,float:left 就是各个元素靠左对齐,float:right 就是各个元素靠右对齐。
比如菜单部分的用法,最后一个使用局部样式控制为右对齐;
再比如中间内容使用float分离为左右两部分内容。
padding和margin —— 边距控制
网上可以查到相当多的关于两者区分的文章,并且配上了形象的配图来说明问题。其实在笔者看来,这两个很好区分:
举个例子,外边是A,里边是B,A使用padding来限制B和自己的距离,B使用margin来控制自己相对于A的位置,二者作用对象不同。
margin更适合子元素控制自己的相对位置。
footer —— 底部区域
用的应该算是比较多了,也相对简单,这里贴一篇footer永久固定在页面底部的方法:来源
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<style>
body {
padding-bottom: 50px;
}
.footer {
position: fixed;
left: 0px;
bottom: 0px;
width: 100%;
height: 50px;
background-color: #eee;
z-index: 9999;
}
</style>
</head>
<body>
内容,可以大量复制看效果<br />
<div class="footer">固定在底部</div>
</body>
</html>
@mediascreenandpx){
/*某些元素的属性重新赋值*/
}
用于响应式布局,屏幕尺寸低于800时执行一个怎样的变更
:hover —— 鼠标悬停操作,用于实现高亮等效果