CSS编程排版练习

1. 实验准备

2. 实验内容

制作一个简单的页面, 要求:
​1)菜单始终在屏幕的上方(无论拖动);
2) 网页的结构如附件所示。每个区块之间,需要有边距和空白。
3) 在屏幕的右下方,固定一个“联系电话”的方框;不随滚动条而改变位置。
4) 进行界面设计。要求有布局、色彩、字体等因素的考虑;

3.实验环境

  • JetBrains WebStorm 2018.3.5 x64 : html+css

4.实验样式

样式.png

4.具体过程

1、整体布局
整体布局.png
  • 同时,我们在可以用css定义全局样式;
  • 开始前,在<style>开闭标签之间添加下面的代码:
html {
    font-family: sans-serif;
}
*{
    box-sizing: border-box;
}
body {
    margin:10px;
}

这只是一些一般设置,在我们页面上设置了无衬线的字体、使用 box-sizing模型,去掉 <body>默认外边距。

2、导航栏
导航栏.png

a) 基本文本

<section class="info-box" >
    <ul>
        <li><a href="#" class="active">Home</a></li>
        <li><a href="#">News</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">About</a></li>
    </ul>
</section>

b)基本设置

.info-box {
  width: 450px;
  height: 400px;
  margin: 0 auto;
}
  • 这对内容设置具体的高度和宽度、在屏幕居中使用老把戏margin: 0 auto。在早先的课程中我们建议尽可能不固定内容容器的高度。这个情况下是可以的,因为我们是在选项卡中固定的内容,如果每个标签都有不同的高度,看起来也有些不和谐。

c) 样式化我们的选项卡

  • 现在我们希望样式化选项卡看上去像选项卡——基本,这些是一个水平的导航标签,但不是点击之后加载不同的网页,和我们之前在课程中见到的不同,相反,他们在同一页面上显示不同的面板。首先,在你的CSS底部添加下列规则,从无序列表中移除默认的padding-left和`margin-top值:
.info-box ul {
  padding-left: 0;
  margin-top: 0;
}
  • 接下来,我们将样式化水平选项卡——列表项都要左浮动确保他们一行合起来,他们的list-style-type被设置为 none 用以去除项目符号,宽度(width)设置为 150px 以便于适应这个info-box。链接(<a> )元素设置为displayinline-block,这样他们将在一行显示,仍然保持样式可设置,他们会被样式化合适的选项卡按钮,通过一系列的其他属性。
.info-box li {
    float: left;
    list-style-type: none;
    width: 287px;
}
.info-box li a {
    display: inline-block;
    text-decoration: none;
    width: 100%;
    line-height: 3;
    background-color:lightslategrey;
    color: black;
    text-align: center;
}
  • 最后,对于本节,我们将会在链接状态上设置一些样式。首先,我们要设置标签的 :focus 和 :hover 状态,让他们在获得焦点/鼠标悬浮的时候看起来不同,给用户提供一些可视化反馈。其次,当某个选项卡的类( class )出现 active 时,我们为其设置一条相同的样式规则。把这些CSS放置在你的其他样式后面:
.info-box li a:focus, .info-box li a:hover {
    background-color:indianred;
    color: white;
}
.info-box li a.active {
    background-color:indianred;
    color: white;
}
3、内容栏
内容栏.png
  • 在body标签中添加一个div,设置其class属性为content。
  • 在content中添加两个div,其class属性分别为content1和content2。
  • 分别定义类选择器content、content1、content2

a) 基本设置,三个div(这部分在上一篇文章《CSS编程练习和界面设计》也讲过)

.content{
    margin:0px auto;
    height: 500px;
    margin-top: 60px;
    padding-right: 55px;
    width: 1210px;
    height: 500px;
}
.content1{
    float: left;
    background-color: lightgrey;
    padding:10px;
    width: 450px;
    height: 500px;
}
.content2{
    float: right;
    background-color: lightgray;
    padding:10px;
    width: 630px;
    height: 500px;
}

b) 表格制作以及样式化

  • 在内容栏里面,重点就是一个表格的制作

表格内容:(这个就比较简单)

<table id="customers">
               <tr>
                   <th>拍摄技巧</th>
                   <th>场景</th>
               </tr>
               <tr>
                   <td>形状匹配</td>
                   <td>海浪与翻开的书</td>
              </tr>
</table>
简单的排版
#customers
{
    font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;
    width:100%;
    border-collapse:collapse;
}
  • 使用 border-collapse: collapse 使表元素边框合并,生成一个更整洁、更易于控制的外观。
#customers td, #customers th
{
    font-size:1em;
    border:1px solid lightslategrey;
    padding:3px 7px 2px 7px;
}
#customers th
{
    font-size:1.1em;
    text-align:left;
    padding-top:5px;
    padding-bottom:4px;
    background-color:lightcoral;
    color:#ffffff;
}
  • 我们在<th>元素上设置了一些padding——这些元素使数据项有了一些空间,使表看起来更加清晰。
#customers tr.alt td
{
    color:#000000;
    background-color:#EAF2D3;
}
  • 对标题栏进行不同的设置
4、页脚

页脚的制作就相对比较简单了,就是背景+文字,这个跟内容栏的操作就是一样的了。

5、联系方式
  • Html内容编辑
<div class="contact">
    <b>
        <p>联</p>
        <p>系</p>
        <p>方</p>
        <p>式</p>
    </b>
</div>
  • 样式化
.contact{
    background-color:darkgrey;
    float: right;
    right: 3px;
    bottom:10px;
    width: 50px;
    height: 180px;
    margin: 0 auto;
    position: fixed;
    text-align:center;
    vertical-align: middle;
}
.contact p{
    color: white;
}

-div的背景,大小设置都是同样的操作,主要就在于这个联系方式位置是固定的,一直都在页面的右下角。right: 3px; bottom:10px; position: fixed;这几个设置非常关键。

5、总结

这部分教程,主要就是讲了一个页面的分块化,不同的css所控制的版面布局不同。
详细的CSS,如何构建表格,以及使div固定位置显示,不受控制条影响。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,748评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,472评论 1 45
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,747评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,314评论 0 11
  • 今天把这个发给了朋友。 他说:没什么用,扔了吧。 我:不扔,高一到高三,我辛辛苦苦攒下来的。还有一些不见了,好难过...
    是洛不是落阅读 93评论 0 0