div+css布局实例淘宝分析(一)

   2023-02-08 学习力0
核心提示:对于刚入门学DIV,CSS布局的朋友来说,不知道从那里下手,我以为从分析优秀网站的源代码来学习div,css布局是一个不错的方法,这篇div+ css布局教程是我自己在边分析边学习中总结出来的,如果你要转载请注明出处,另外本人特别声明:本教程只是分析淘宝网站的HTML,CSS
  • 对于刚入门学DIV,CSS布局的朋友来说,不知道从那里下手,我以为从分析优秀网站的源代码来学习div,css布局是一个不错的方法,这篇div+ css布局教程是我自己在边分析边学习中总结出来的,如果你要转载请注明出处,另外本人特别声明:本教程只是分析淘宝网站的HTML,CSS源代码,作为 一个教程的例子,达到学习DIV+CSS排版的效果,请勿模仿淘宝,或者仿照淘宝制作网站,谢谢,这是第一篇,淘宝顶部排版方式

    我们看看原始图片

    div+css布局实例淘宝分析(一)

    通过观察,我们把它分为如下图所示块

    div+css布局实例淘宝分析(一)
    具体的HTML,DIV+CSS排版样式为

    div+css布局实例淘宝分析(一)

    我们一行一行分析,

    1.全部的代码均在一个DIV容器(我暂时这样称呼) Head里面,我们来看看Head的写法
    #Head{
        text-align:center;
    }
    为什么Head前面有一个"#"号呢?
    而有的却是在前面加一个"."比如 ".Head",有时候写css的时候干脆什么也不加,比如 td,body,他们有什么区别,具体怎么用,如果仔细你就会发现在HTML代码的DIV容器里面,有的是 <div ></div>
    从id和class字面上的意思,我们也已经了解了,id具有唯一性,而class是一个类,适用于可多次重复使用的容器,而前面什么也不带的,便是 CSS里默认的通用于HTML代码的描叙,即对HTML里的代码起全局作用,比如 td,便是对HTML表格里面的全部列起作用,text-align:center是指在此容器里面的文字全部居中对齐,我们注意到,行后面还有一个分号 ";",
    语法 text-align : left | right | center | justify
    取值说明:
    left  : 默认值。左对齐
    right  : 右对齐
    center  : 居中对齐
    justify  : 两端对齐

    2.HeadTop
    #Head #HeadTop{
        position:relative;
        width:760px;
        margin:10px auto 10px;
        text-align:left;
    }
    为什么#HeadTop前面会有一个#Head?
    我们发现#headTop是嵌套在#Head里面的,为了Head里面的设置在HeadTop里面同样生效,将HeadTop放在了Head后面

    position : static | absolute | fixed | relative
    取值:
    static  : 默认值。无特殊定位,对象遵循HTML定位规则
    absolute  : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义
    fixed  :未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
    relative  :对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置div+css布局实例淘宝分析(一)

    width : auto | length
    auto  : 默认值。无特殊定位,根据HTML定位规则分配
    length  : 由浮点数字和单位标识符组成的长度值 | 百分数。百分数是基于父对象的宽度。不可为负数。 可以用相对长度象素单位px或者绝对长度in等做单位(1in = 2.54cm = 25.4 mm = 72pt = 6pc)

    margin:10px auto 10px;
    检索或设置对象四边的外补丁
    如果提供全部四个参数值,将按上-右-下-左(顺时针方向)的顺序作用于四边。如果只提供一个,将用于全部的四边。如果提供两个,第一个用于上-下,第二个用于左-右。如果提供三个,第一个用于上,第二个用于左-右,第三个用于下。

    text-align:left;
    我们看到Head里面已经有设置文字对齐是居中的了,而这里又定义文字居左,那么到底文字怎么对齐呢?如果有相冲突的定义,CSS将按最近的一个定义来执 行,这跟HTML中的是一样的,比如<font color=red><font color=green>我到底是什么颜色?</font></font>div+css布局实例淘宝分析(一)

    3.
    #Head #Logo{
        width: 240px;
        height: 31px;
        float: left;
        margin-left: 2px;
    }
    width(宽度),height(高度)都不说了
    float : none | left | right
    取值:
    none  : 默认值。对象不飘浮
    left  : 文本流向对象的右边
    right  : 文本流向对象的左边
    翻译为漂浮,left说明是从左开始排列
    margin-left: 2px; 相当于 maign:0px;0px;0px;2px
    这里Logo容器说明的是,从左开始排列,宽度为240px,高度为31px,左补丁(左边空余)2px宽

    4.HeadNavBar左边导航条
    #Head #HeadNavBar{
        float:right;
        clear:right;
        background: url(images/header_mm_bk.gif) left top no-repeat;
        width:510px;
    }

    clear:right;清除右浮动,说明右边不能再有容器
    clear : none | left | right | both
    background: url(images/header_mm_bk.gif) left top no-repeat;
    (意思是背景图片左,上对齐,不重复)
    background : background-color || background-image || background-repeat || background-attachment || background-position
    background-color:silver; 背景色
    background-image:url(http://www.dayanmei.com/images/space.gif);
    当同时存在背景图片和背景色时背景色将被覆盖
    background-repeat : repeat | no-repeat | repeat-x | repeat-y
    取值:
    repeat  : 默认值。背景图像在纵向和横向上平铺
    no-repeat  : 背景图像不平铺
    repeat-x  : 背景图像仅在横向上平铺
    repeat-y  : 背景图像仅在纵向上平铺
    background-attachment : scroll | fixed
    取值:
    scroll  : 默认值。背景图像是随对象内容滚动
    fixed  : 背景图像固定
    background-position : length || length
    background-position : position || position
    取值:
    length  : 百分数 | 由浮点数字和单位标识符组成的长度值。 
    position  : top | center | bottom | left | center | right

    整句的意思是宽度为510px象素的容器从右往左排列

    5.
    #Head ul{
        list-style-type:none;
        margin:0;
        padding:0;
    }
    list-style-type:none;
    list-style : list-style-image || list-style-position || list-style-type
    list-style-image : url ( url );可以将列表样式改变为图片

    list-style-type : disc | circle | square | decimal | lower-roman | upper-roman | lower-alpha | upper-alpha | none
    取值:可以将列表改变为其他样式
    disc  : CSS1  默认值。实心圆
    circle  : CSS1  空心圆
    square  : CSS1  实心方块
    decimal  : CSS1  阿拉伯数字
    lower-roman  : CSS1  小写罗马数字
    upper-roman  : CSS1  大写罗马数字
    lower-alpha  : CSS1  小写英文字母
    upper-alpha  : CSS1  大写英文字母
    none  : CSS1  不使用项目符号


    6.
    #Head #HeadNavBar li{
        float:left;
        height:31px;
        background: url(images/header_mm_sep.gif) left center no-repeat;
        display:inline;
    }
    display:inline; 内联对象的默认值。将对象强制作为内联对象呈递,从对象中删除行(显示在行内,超出的将不显示)
    display : block | none | inline | inline-block

    7.
    #Head #HeadNavBar li.NoSep{
        background: none;
        margin-left: 5px;
    }
    当列表区块内标志类为NoSep时,没有背景色"background: url(images/header_mm_sep.gif) left center no-repeat;",并且左补丁为5px

    8.#MyTaoBao {
        padding-left: 14px!important;
        margin-left: 9px!important;
        margin-left: 4px;
        background:transparent url(images/header_mm_mytb_icon.gif) no-repeat left center;
    }
    padding:lenth;内补丁,用法参考margin,
    padding-left: 14px;是指左边空余14px的值,这空余是用来放置居左中的背景图片的
    !important;提升指定样式规则的应用优先权。

    9.设置列表内的链接样式
    #Head #HeadNavBar li a{
        display:block;
        padding: 0 6px 0 7px;
        float:left;
        height:31px;
        line-height:31px;
        color: #0f3a66;
        font-size: 13px;
    }
    display:block; 以块状呈现
    padding: 0 6px 0 7px;左右内补丁各为7px,6px
    color: #0f3a66;链接时文字颜色为#0f3a66;
    链接的完整定义还可以包含背景颜色background,链接样式text-decoration(text-decoration : none[无装饰] || underline[下划线] || blink[文字闪烁] || overline[上划线] || line-through[贯穿线])
    链接的顺序应该是这样的(LVHA)
    a:link
    a :visited
    a :hover
    a :active


    #Head #HeadNavBar li a:hover{
        color: #e60;
    }

    10.
    #Head #HeadNavBar li#AdvanceBox {

        background: none;
        margin-left: 10px;
    }
    由于AdvanceBox是在块li里面,故顺序为#Head #HeadNavBar li#AdvanceBox,这句意思是无背景,左外补丁(左空余)为10px;

    11.为#AdvanceBox内的其他表单元素定义
    #Head #HeadNavBar li#AdvanceBox form {
        margin:0;
        padding:0;
        margin-left:8px;
        margin-top:5px;
    }

    #Head #HeadNavBar li#AdvanceBox .HeaderSearchBox {
        display:block;
        float:left;
        width:112px;
        height:15px!important;
        height /*ie55*/: 21px;
        padding:3px 2px 1px 2px;
        padding-right:0;
        border: 1px solid #7ad2ff;
        background:url(images/header_mm_srch_bk.png) no-repeat;
        color: #000;
    }

    #Head #HeadNavBar li#AdvanceBox input.DC {
        color: #90B1C5 !important;
    }

    #Head #HeadNavBar li#AdvanceBox .HeaderSearchBtn {
        display:block;
        float:left;
        margin-left /*ie55*/: -3px;
    }

    #Head #HeadNavBar li#AdvanceBox li {
        background: none!important;
    }

    12.#QuickLinks
    #Head #QuickLinks{
        float:right;
        width:750px;
        margin-top:6px;
        margin-right:6px;
    }
    右浮动,宽度为750px,上,右补丁各为6px

    13.为#Head #QuickLinks定义列表li样式
    #Head #QuickLinks li{
        float: right;
        margin-left:10px;
        line-height:21px;
    }
    line-height:21px; 行高21px;

    14.定义#Head #QuickLinks li内链接样式,多个相同的定义时可以用","分割开,而且路径要写完整
    #Head #QuickLinks li a:link, #Head #QuickLinks li a:visited {
        font-style:normal;
        font-weight:normal;
        font-size: 12px;
        color:#04d;
    }

    #Head #QuickLinks li a:hover, #Head #QuickLinks li a:active {
        color:#e60;
    }

    15.
    .HackBox{
       border-top:1px solid transparent !important;
       border-top:0;
       clear:both;
    }
    这里有两个重复定义的border-top(上边框,!important优先,边框为1px,透明
    clear:both; 左右浮动均清除,类似换一行

    淘宝头部导航已经基本分析完成,现在总结一下:

    (1).容器div可以嵌套,比如 <div 里面却不用写成 #Head #HeadTop #Logo,因为HeadTop并没有对Logo限制

    (2).独特的容器名字前面加符号 "#",通用的前面加符号小句点"."

    (3).容器的基本参数包括 外补丁 margin,内补丁 padding,宽度 width,背景 background,浮动 float,清除 clear,这几个参见参数的用法要熟记

    (4).需要换行显示时用 clear:both;

    (5).可以单独为某个容器定义链接样式, 顺序为 LVHA(a:link,a:visited,a:hover,a:active),链接样式的几个参数背景(background),内补丁 (padding)宽度(width)描述(text-decoration)文字颜色(color)等,可以设置链接以块状方式显示

    其他未总结之处,请多看源码.
  •  
    反对 0举报 0 评论 0
     

    免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
        本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

    • css实现弹出框 css弹出菜单
      弹出框也是前端里面经常使用的一个应用场景了,最开始想到的是用js实现这个效果,看到codepen上面有用css实现的。其实就是用到了css里面的一个:target选择器+visibility属性。URL 带有后面跟有锚名称 #,指向文档内某个具体的元素。这个被链接的元素就是目标
      03-08
    • jfinal框架页面找不到相关css,js文件404
      在JFinalConfig中添加配置: @Overridepublic void configHandler(Handlers handlers) {handlers.add(new ContextPathHandler());}页面中添加:base href="${CONTEXT_PATH}/"/之前页面找不到资源,把tomcat工程路径去掉了(path=""),这样暂时解决了问题推荐
      03-08
    • 纯CSS3实现的一些酷炫效果 css实现炫酷背景
      纯CSS3实现的一些酷炫效果 css实现炫酷背景
        之前在网上看到一些用纯CSS3实现的酷炫效果,以为实现起来比较困难,于是想看看具体是怎么实现的。一、笑脸猫动画实现效果如下:这个实现起来确实比较麻烦,很多地方需要花时间,有耐心地调整。1.先看下页面结构:bodydiv class="container"!-- 脸 --div
      03-08
    • 移动端CSS底部固定和fixed定位在ios上的bug
      fixed定位在ios上的bugcss三栏布局假设我们页面的 HTML 结构是这样: div class="wrapper"div class="content"!-- 页面主体内容区域 --/divdiv class="footer"!-- 需要做到 Sticky Footer 效果的页脚 --/div/div方法1.:absolute通过绝对定位处理应该是常见的
      03-08
    • css实现图片翻转 css使图片旋转
      !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"html xmlns="http://www.w3.org/1999/xhtml"headmeta http-equiv="Content-Type" content="text/h
      03-08
    • css3 渐变gradient
      css3 渐变gradient
             CSS3引入了背景渐变、background-origin、background-clip、background-size、遮罩等多个属性。这里将记录我从网上和书上学习的笔记和心得体会。   首先是渐变,我这里讲述的渐变不仅仅是背景色的渐变还将包括透明度渐变。以前做这种背景色渐
      03-08
    • CSS3中的px,em,rem,vh,vw辨析 css3 vw
      1、px:像素,精确显示2、em:继承父类字体的大小,相当于“倍”,如:浏览器默认字体大小为16px=1em,始终按照div继承来的字体大小显示,进场用于移动端          em换算工具:http://www.runoob.com/tags/ref-pxtoemconversion.html3、rem:与em类似,
      03-08
    • gulp自动化构建工具--自动编译less为css--学习
       1.安装      命令:npm install gulp-less 或者 cnpm install gulp-less2.编写文件 //获取gulpvar gulp = require('gulp')//获取gulp-less模块var less = require("gulp-less")//编译less//在命令行输入gulp less启动此任务gulp.task('less',function(){
      03-08
    • 关于动画Animate.css的使用方法
          首先贴个官网:https://daneden.github.io/animate.css/  1、引入animate css文件 1 head2 link rel="stylesheet" href="animate.min.css"3 /head   2、给指定的元素加上指定的动画样式名div class="animated bounceOutLeft"/div    这里包
      03-08
    • selenium Firefox禁用js,css.falsh,缓存,设置
      1 profile = FirefoxProfile() 2 #请求头 3 #profile.set_preference("general.useragent.override", util.http_agent_insert(xinhuaUtil.agent_path)) 4 # 激活手动代理配置(对应着在 profile(配置文件)中设置首选项) 5 profile.set_preference("network
      03-08
    点击排行