像积木一样搭建网页

前言

我们在浏览网页的时候,经常会看到很相似的几种内容。比如下面这两种样子:

看上去是不是比较像呢?其实就是图片的位置不一样,大致上可以认为是一样的吧,那么针对这样子的相似度较高的网页,我们应该怎么样开发呢?

其实这就得谈谈“页面重用机制”了,下面所写的积木式网页构建方式就能够很好的处理页面重用这个问题。

接下来将从以下4个方面对积木式网页开发进行描述:

  1. 分析页面结构
  2. 构建网页的结构
  3. 编写网页基本的样式
  4. 编写不同表现的样式

一、分析页面结构

虽然HTML的语法那些很简单,但是在网页设计和开发中,它却占据着不可动摇的地位。首先我们需要根据设计师的PSD和产品经理所描述的需求,然后确定我们网页的结构,反复的与他们沟通,确定更多的信息,才让我们的网页结构的生命周期变得更长。

这里推荐一个Chrome的插件,可以瞬间去除CSS和JavaScript的效果,查看到最原始网页的表现。

Web Developer

下面我们要参考的结构就如下图中2种样子:

我用红线大致描了一下页面的信息块,接下来我们来分析一下信息:

  1. 一张展示图
  2. 一个标题
  3. 商品的列表信息(包括总价)
  4. 附属品的列表信息
  5. 购买按钮

好吧,这里就不需要PM来确认啦,自己当一回PM ^8^,接下来我们需要描述网页结构。

二、构建网页的结构

经过上面的分析,我们可以得出如下的DOM结构:

<div class="productStackWrap">
    <img class="psImage" src="http://p5.qhimg.com/t01bc7da5a2c6e90308.jpg" alt="卢林">
    <div class="psArticleWrap">
        <h1 class="psTitle">赔本大甩卖</h1>
        <ul class="psPriceWrap">
            <li>
                <span class="spLabel">眼镜</span>
                <span class="spAmount">500元</span>
            </li>
            <li>
                <span class="spLabel">外套</span>
                <span class="spAmount">300元</span>
            </li>
            <li>
                <span class="spLabel">iPhone 5S</span>
                <span class="spAmount">88元</span>
            </li>
            <li>
                <span class="spLabel">总价</span>
                <span class="spAmount spTotalPrice">仅需888元</span>
            </li>
        </ul>
        <div class="spDescriptionWrap">
            <p>附带品</p>
            <ul class="descBulletsUL">
                <li>可乐一罐</li>
                <li>饭碗一个</li>
                <li>6块钱的麻辣烫</li>
            </ul>
        </div>
        <button class="psCTA">买买买</button>
    </div>
</div>

我们这里不需要任何样式,也会是一个很美的网页,至少看起来整洁,信息整齐。(图片太大,直截取文本部分。因为图片的宽、高在初始化的时候必须要设置的,至于为什么要设置可以查阅Google,主要是给图片预留空间,提升文档性能。)

好吧,到这里我们的DOM结构就构造完了,接下来添加一点基本的,也可以理解为公用的样式,这里的公用可以不理解为积木块共有的样式。说起来绕了一点,也就是说不同表现的共有样式可以与本身结构具有的基本样式进行分离,这个可以看自己喜好来决定。

三、编写网页基本的样式

在此之前我们来看看我本地的文件结构:

demo  //文件夹
    A.css  //样式1
    B.css  //样式2
    index.css  //基本样式
    index.html //DOM结构

这里可以处理一些基本的网页样式信息,比如恢复一些元素的默认值、调整部分间隙。这部分代码位于:index.css中,内容放入文章末尾吧,这里我们连贯的描述怎么做页面重用。

四、编写不同表现的样式

说了怎么久,DOM结构和基本样式都搞好啦,那么现在我们来实现我们的两张图。现在我们只需要做的是在最外层DOM结构中加入不同的类名:

// A类样式
<div class="productStackWrap psTreatmentA">...</div>
// B类样式
<div class="productStackWrap psTreatmentB">...</div>

这样我们利用CSS的权重来控制特殊的样式,其实这里的 psTreatmentA 类更像一个命名空间,如果用严格的语言来理解的话,那么可以理解为:

class psTreatmentA implements productStackWrap {
    ...
}

class psTreatmentB implements productStackWrap {
    ...
}

...

class psTreatmentN implements productStackWrap {
    ...
}

注意这里用的是接口哦,CSS的复用可以是多继承的关系,至少我是这么理解的。

那么我们改怎么针对这个类来写属于它实例的样式呢?那么看一下下面两段代码就可以理解了。

/* A类样式 */
.psTreatmentA {
    width: 310px;
}
.psTreatmentA .psImage {
    width: 80px;
    height: 112px;
    float: left;
}
.psTreatmentA .psTitle {
    margin-left: 100px;
}
.psTreatmentA .psPriceWrap {
    margin-left: 100px;
    text-align: right;
}
.psTreatmentA .psCTA {
    margin: 0 auto;
}

/* B类样式 */
.psTreatmentB {
    width: 385px;
}
.psTreatmentB .psImage {
    width: 386px;
    height: 287px;
    display: block;
    margin-bottom: 20px;
}
.psTreatmentB .psPriceWrap {
    text-align: left;
    margin-left: 110px;
}
.psTreatmentB .psTitle {
    text-align: center;
    font-size: 27px;
}

这样做了过后就能够使用同一套DOM结构,来穿上不同的样式了,技术是很简单的技术,但是不同的玩法能玩出不同的精彩哦~

那么,这样做有什么好处呢?这里随机列几条吧。

场景一:

PM说:“我们换回以前那份设计稿吧。”

FE说:“好的,马上弄。”(随手删除了引入的B样式,引入A样式,OK,解决问题~)

场景二:

PM说:“这是最新设计稿,要赶紧上线,1天能上线吗?”

FE说:“我看看设计稿来(啪啪啪~看完设计稿,发现其中有很多复用的网页样式)。”

FE再说:“我尽力吧,晚上做完回你。(使用通用的结构include,最后将之前项目中的A...N样式拿来一套,解决问题!)”

好处还有很多呢,等待你去发现~

五、最后结束语

虽然上面文章描述了样式上的重用,其实在JS行为的把握上我们也可以使用相同处理事情的方式,将JS行为的类将表现给分离出来,能够更好的应对需求的变更以及增加代码的可维护~

附:(文章例子中的基本样式)

.productStackWrap {
    position: relative;
    font-size: 14px;
    margin: 40px 0;
    border: 1px solid #999;
    padding: 20px;
}
.psTitle {
    font-size: 21px;
    font-weight: 700;
    margin: 0 0 5px 0;
}
.psPriceWrap {
    padding: 0;
}
.psPriceWrap li {
    list-style: none;
    padding: 2px 0;
}
.spLabel {
    display: inline-block;
    width: 75px;
    text-align: right;
    padding-right: 3px;
}
.spAmount {
    display: inline-block;
    width: 75px;
    text-align: right;
    font-weight: 700;
}
.spTotalPrice {
    color: green;
}
.spDescriptionWrap p {
    line-height: 150%;
}
.psCTA {
    background: green;
    color: #fff;
    padding: 5px 0;
    width: 120px;
    display: block;
    border: 0;
    text-align: center;
    font-size: 20px;
    text-shadow: 1px 1px 1px #666;
    border-radius: 5px;
    background-clip: padding-box;
    background: #92c436;
    background: linear-gradient(top, #92c436 0%, #97c64b 50%, #80c217 51%, #7cbc0a 100%);
}
.descBulletsUL li {
    padding: 4px 0;
}

原文地址:https://www.cnblogs.com/homehtml/p/12663948.html

时间: 2024-10-15 03:56:00

像积木一样搭建网页的相关文章

问题解决:访问自己搭建网页时出现:此地址使用了一个通常用于网络浏览以外的端口。出于安全原因,Firefox 取消了该请求。

出现这种问题就是端口受到了限制,但是其他端口却没受到限制不知为何,希望有看到的大佬帮忙解答一下,下面说一下这个问题的解决办法 火狐地址栏输入   about:config 然后右键新建字符串 输入network.security.ports.banned.override 接着输入你要访问的端口号即可 如果是多个端口就逗号隔开即可   87,88,89

搭建网页HTML结构

div 块级标签 span 行内标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div> <img src="cat.jpg" alt="cat" wi

【dp】积木城堡

积木城堡 来源:vijos P1059 [问题描述]     XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木.小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒.所以他在垒城堡的时候总是遵循这样的规则.     小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度.为了公平起见,他决定把送给每个女孩子一样高的城堡,这样可以避免女孩子们为了获得更漂亮的城堡而引起争执

HTML5与CSS3实现动态网页

课程目录: 步骤1: 初识HTML5本阶段内容主要涵盖HTML5新增.删除标签.标签属性变化以及HTML5布局知识.通过本阶段学习,大家可以运用HTML5标签轻松实现网页音乐播放器和视频播放器,熟练运用HTML5的语义化标签进行静态网页的开发.1.HTML5标签变化 HTML5文档类型如何定义,有哪些标签,以及如何使用,从整体认识HTML52.HTML5网页布局 传统布局与HTML5网页布局的区别和意义,通过案例讲解如何使用HTML5搭建网页3.HTML5属性变化 了解这些属性带来的好处,加深对

Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

第一章 实验环境 硬件环境:Linux服务器一台,IP地址:192.168.80.10:WIN7客户端一台,拥有OUTLOOK2013,测试用,与服务器在同一局域网内. Linux系统环境,如下图: 第二章 实验内容一:搭建DNS服务器二:搭建postfix服务器及普通发信三:普通收信四:认证收信五:squirrelmail收发邮件(搭建网页收发邮件)六:邮件群发功能配置七:邮件发送容量大小配置八:通过配置用户磁盘配额实现限制用户邮箱空间 第三章 实验步骤准备工作:[[email protect

Web前端攻城狮培养计划之前端小白入门:网页布局基础与常见网页特效

步骤1: HTML基础超文本标记语言(英文缩写:HTML)是为"网页创建和其它可在网页浏览器中看到的信息"设计的一种标记语言,为搭建网页结构做出第一步.本阶段主要介绍了HTML的语法基础.表格.表单.等标签,并有案例结合,达到学以致用. 第1课 HTML基础HTML是网页制作必备技能,在本课程主要介绍HTML概念.语法及常用基础标签 第2课 HTML表格表格在网页中用于数据和排版,本课程介绍表格概念.语法.操作,并通过案例掌握知识. 第3课 HTML表单表单用于收集用户信息,本课程介绍

Web前端攻城狮培养计划之HTML5与CSS3实现动态网页

步骤1: 初识HTML5本阶段内容主要涵盖HTML5新增.删除标签.标签属性变化以及HTML5布局知识.通过本阶段学习,大家可以运用HTML5标签轻松实现网页音乐播放器和视频播放器,熟练运用HTML5的语义化标签进行静态网页的开发. 第1课 HTML5标签变化HTML5文档类型如何定义,有哪些标签,以及如何使用,从整体认识HTML5 第2课 HTML5网页布局传统布局与HTML5网页布局的区别和意义,通过案例讲解如何使用HTML5搭建网页 第3课 HTML5属性变化了解这些属性带来的好处,加深对

积木城堡

XC的儿子小XC最喜欢玩的游戏用积木垒漂亮的城堡.城堡是用一些立方体的积木垒成的,城堡的每一层是一块积木.小XC是一个比他爸爸XC还聪明的孩子,他发现垒城堡的时候,如果下面的积木比上面的积木大,那么城堡便不容易倒.所以他在垒城堡的时候总是遵循这样的规则. 小XC想把自己垒的城堡送给幼儿园里漂亮的女孩子们,这样可以增加他的好感度.为了公平起见,他决定把送给每个女孩子一样高的城堡,这样可以避免女孩子们为了获得更漂亮的城堡而引起争执.可是他发现自己在垒城堡的时候并没有预先考虑到这一点.所以他现在要改造

基于CentOS7的服务器搭建(LAMP环境)

基于CentOS7的服务器环境搭建(LAMP环境) 一.安装MySQL组件 1.由于在CentOS7中,默认yum安装库中不含有mysql,我们可以下载mysql的分支MariaDB,如果必须要下mysql,可以通过下载mysql官方的yum库,再利用yum install *进行mysql的安装 yum -y install mariadb-server 2.启动服务 service mysqld restart systemctl restart mysqld.service 3.修改mys