初学前端之实现页面简单的边框、表格和三角形

本文用css的简单样式来实现边框、表格和三角形的页面展示,包括一些常用写法的学习。

边框的设置

我们先举例实现,再深入探究其中的写法。


例子.png

1 . 先总览全局
需要哪些html的标签:
<p> <div>
需要哪些css的样式:
边框的设置,其中有颜色、四周边框的显示和隐藏、背景颜色。
元素的居中设置
文字和边框的距离设置

2 .写出html
因为元素相对少,且不复杂,直接在html的body里面用div把内容包裹起来。然后div下面再嵌套四个同级的div标签,这四个div里面分别嵌套一个p标签,p标签里面写入文本。具体如下:


html1.png

3 .写出css样式
我们先把整个页面元素全部居中,设置<body>下的子代<div class="layout">,然后css中设置其块级元素margin=0 auto居中。如下:


HTML2.png

其中width:600px设置整个块级元素<div>的宽度

然后设置每个边框之间的距离,因为每个边框的标签都是有layout这个类别下面的div的子代,所以选择器写成 .layout>div即可,margin-top使外边框的高度改变,我们设置成30px。如下:

html3.png

现在所有的段落位置就就位了,我们只要对每个段落的文本框进行编辑就可以了。设置各个包裹<p>标签的div类别分别为h-container、h-container style-1、h-container style-2、h-container style-3。如图:
html1.png

从上图可以看出如果对.h-container进行样式编辑,则可以对所有含有.h-container类别的标签进行设置样式。
第一个边框有很细的灰色的实线边框,四个角为小幅度圆角,行高1.5倍,还要设置内边距的距离,写法如下:
html4.png

有朋友会问,你这样写下面不是全部会变成一样的格式吗?
是的,下面确实变成一样的格式,但是接下来我们设置下面表格的样式使用的是.h-container.style-n的方式,我们知道当同时具备相同类别的样式设置时,权重大的生效,此时后者有两个类选择器,权重更重,所以会覆盖掉我们前面设置的不要的属性。

然后我们看下一个边框,背景为粉红色,左右边框是红色,上下边框没有内边距和上一个一样不做修改,没有圆角。所以写法如下:


html5.png

这里同样有一个样式覆盖的情况,同一个标签样式设置下面的样式会覆盖上面的样式,所以本边框最后并不会全部消失。
下面两个边框情况类似,所以就只放图片了:

html6.png

自此,边框页面实现。

总结

对于实现这个边框,这种写法最关键的地方在于对同一个标签的同样属性设置样式时,权重和优先级的确定。把全局通用的属性,通过权重较轻、优先级弱的选择器设置出来,再分别对个性化比较强的属性通过权重重,优先级高的标签选择器单独设置,大大减少了设置过程中的时间。

表格

我们同样再看一个例子


html7.png

1 .纵览全局
上下两个表格内容上是一模一样,样式不同;
很容易想到用表格table标签实现这个页面;
边框不一样,怎么设置出部分边框不一致,这是难点;
表格背景颜色是白灰交替,这也是难点;

2 .html


html8.png

3 .css
首先还是如上面例子一样,先设置全局属性,把字体、两个表格居中,并且设置表格的外边框。如下:

html9.png

然后这里我们发现有个问题,那就是对于表格而言,里面的每个单元格都有自己独立的边框,而在我们要求完成的样式中是公用的,所以需要让表格边框共用,就要用到border-collapse: collapsed;但有时候表格合并不了,为了以防万一可以加上border-spacing: 0
然后把表格通用格式先写出来,如下:
html10.png

这里提示一下,关于width:100%并不是一个好主意,简单页面看不出来,一旦到页面比较复杂的时候,其宽度通常会超出,因为这个语句本身的意思是和父元素一样的宽度,但是这个可不包含margin。

然后我们再让表格的行<tr>底部的border再设置一下,防止之後表格2用borber:none;的时候消失,我们需要使用一个权重比较大的选择器。如下:


html11.png

在通用属性下,我们再次在两个表格的行下添加了权重比较重的样式,下面我们只需要对表格2使用borber:none就可以让原本通用属性边框消失,而权重重,优先级高的选择器保留,效果就类似于把上左右的边框消失。


html12.png

那么间隔的灰白色怎么解决?
我用的是伪类选择器 .h-table tr:nth-child(2n),意思是类别为.h-table类别的table下,匹配父代为标签为tr,其tr的子代顺序为双数的子代,翻译一下就是表格里行里面为双数行数的这部分。写法如图:


html13.png

剩下的事就把样式补全


html14.png

总结

同样是使用权重和优先级的选择器方式来实现边框的隐藏和出现。
在选择白灰交替出现的行时,我们用了伪类选择器,实现了这个效果。

三角形

html15.png

1 .纵览全局
这个实现主要是考虑怎么变成三角形。这里使用的方式是边框变粗,然后里面宽高为0,但是这样的话就是个正方形,所以再把上下左右的边框变成可见或者不可见。

2 .html


html16.png

3 .css
先设置全局属性


html17.png

想要边框不可见,使用transparent
.aa{
      border-top: 30px solid blue;
      border-left: 30px solid red;
      border-right: 30px solid yellow;
      border-bottom: 30px solid green;
    }
     .bb{
      border-top: 30px solid blue;
      border-left: 30px solid transparent;
      border-right: 30px solid transparent;
      border-bottom: 30px solid transparent;
     }
     .cc{
      border-top: 30px solid transparent;
      border-left: 30px solid red;
      border-right: 30px solid transparent;
      border-bottom: 30px solid transparent;
     }
     .dd{
      border-top: 30px solid transparent;
      border-left: 30px solid transparent;
      border-right: 30px solid yellow;
      border-bottom: 30px solid transparent;
     }
     .ee{
      border-top: 30px solid transparent;
      border-left: 30px solid transparent;
      border-right: 30px solid transparent;
      border-bottom: 30px solid green;
     }
     .ff{
      border-top: 30px solid transparent;
      border-left: 30px solid red;
     }
     .gg{
      border-top: 30px solid transparent;
      border-right: 30px solid green;
     }

完成!

参考网址.若愚老师问答
w3c

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

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,456评论 1 45
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,744评论 1 92
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,306评论 2 66
  • 我已拥有对教练会谈后的觉察。在一段教练过程中一定要让自己坚持流程还是跟随客户的状态自然flow,随客户而动。 我已...
    蒋萍coach阅读 184评论 0 1
  • 关键词:超级个体;开放心态;绿灯思维。 昨天晚上下班的时候,工作群里,品牌合作方的产品经理对我们之前提供的产品设计...
    Sebrenna阅读 1,197评论 0 4