伪类来实现,index.html文件里面已经预包含一些

作者:新美高梅

Foundation-4CustomTopBar

Loremipsumdolorsitamet,consecteturadipisicingelit.Harum,asperiores,voluptas,veniamcommodiimpeditteneturdolorescumquefacereexplicaboessequaeratveritatislaboriosameiusmodiametmaximenonofficianemo?Iste,quisquam,voluptatum,dolornamreiciendisundealiquamnumquamnecessitatibusodioetperspiciatisfacerenihilinventoreullamaspernaturcorporisveritatisquiadolorum?Sed,hic,eosquisquibusdameumautoptiorepudiandaeat!Eligendi,nequerationealiasenimquaemagnamdoloresessepariaturearumlaborumreiciendisnobissuntsequisapienteducimusiureipsam.Sapiente,minima,rerum,facerequossaepepariaturmagnidoloremcumametnemoquislaborumipsadignissimosducimusinventoremodiremcumquequibusdamquamasperiores!Optio,nobissuscipitmolestiasvoluptasveritatisaspernaturaccusamusexcepturiremquaeratimpeditanimivoluptateatfacilisaliquidcumfugitlaboreomnisprovidentrecusandaeautem.Doloribus,mollitiaquosofficiisquassapientenamdolorpraesentiummaximecupiditateillum?Rem,esse,nullavitaeadipiscisequidelenitiquasi!

©2014

第二步:顶部工具栏标记

在编写样式之前,我们需要编写出一些必须的HTML结构代码使得Foundation顶部工具栏能够正确地运行起来。因此需要5样基础元素使得引擎跑起来。

= 为了增强在手机布局上的菜单。

现在我们用这5样基础元素来搭建基础框架并且实现功能。

备注:在此教程例子中,我们将创建一个自定义的导航菜单,因此删除一些包括logo、文本和图片的标题。因此从下面代码例子可以看到在块元素

里的

里面是空的。

接着,我们来添加一些菜单元素和一个下拉菜单代码,在你想添加下拉菜单的li元素里添加class="has-dropdown",然后在里面包含下拉菜单代码

。如果想表示当前使用状态的li,则需要添加”active”。

Menu

Home

Aboutus

Ourproducts

Portfolio

Blog

Prices

Features

Modalboxes

Submenu'sandnavigation

Pricetables

Buttons

Buttongroups

Labels,KeystrokesandTooltips

Alertboxes

Columns

Contact

第三步:目前效果

现在可以在你的浏览器上看到目前的效果,基于Foundation框架使用顶部工具栏我们已经创建一个水平菜单。为了方便把菜单放置到其他地方,而不是固定在浏览器的顶部,我们需要在以上代码外层添加网格的

当你在调整浏览器窗口时,会发现菜单栏在预先设定的断点发生改变。

接下来着手编写自定义样式,将关注如何去编写顶部工具栏的样式和可以使用哪些class。

编写CSS

第一步:通用样式

如果你还没做好准备,可以创建一个css文件,命名为style.css并且放置到下载下来的Foundation工程下css文件夹下。但别忘记把此引用到index.html文件里。如下代码示例:

Foundation4

这里如果你不把style.css放置在foundation.css下面,将不会覆盖原来顶部工具栏的样式。

很好,接下来我们要为header、导航、内容和footer写一些基础样式,如导航块,我们将添加一张已经下载好的背景图。这些通用样式一般不是很难去实现的,见如下代码示例,我们添加一个class”full-width”到每个区域中,以致于每个区域的宽度都是占满浏览器宽度的。

background-color:#ccc;

/**Setthebackgroundsforthedifferentsections**/

.header-area{

background-color:#2d465c;

min-height:160px;

.navigation-area{

background-image:url('../img/navigation-container.jpg');

background-repeat:repeat-x;

.content-area{

padding:50px070px0;

.footer-area{

background-color:#1f1f1f;

color:#fff;

min-height:50px;

padding:20px000;

.full-width{

min-width:100%;

position:relative;

color:#fff;

font-weight:normal;

margin-top:50px;

第二部:顶部工具栏样式

现在看一下效果,会发现菜单会往外偏移一点,原因就是使用默认的样式,接下来修复这个问题!

有一些样式类是需要修改以达到想要的效果。首先,我们将在.top-bar和.top-bar-section li里移除黑背景,改变height和line-height为58px。如下代码,可看注释帮助理解。

/**Changesbackgroundcolor,heightandmarginoftheborder**/

background:none;

height:58px;

line-height:58px;

margin-bottom:0;

/**Removesblackbackgroundonmenubar**/

.top-bar-sectionul{

background:none;

text-transform:uppercase;

/**Removesblackbackgroundonmenuitem**/

.top-bar-sectionlia:not{

background:none;

line-height:58px;

padding:027px;

我们已经移除黑背景了,并且适应高度、行高和内边距,将文字转化为大写字母,这些都是为了适应我们自定义设计。

如果你进行刷新页面,可以看到出现雏形了,我们继续编写下拉菜单、菜单子项目、激活的状态的样式吧。继续往下看代码示例,并阅读注释:

/**Changestheactivemenuitemfromdefaultblacktoagradient**/

.top-bar-sectionulli.active>a{

background:rgb;

background:linear-gradient(tobottombottom,rgba0%,rgbarepeatscroll00transparent;

color:#fff;

/**Changesthehoverstateofnonactivemenuitems**/

.top-bar-sectionli:hovera{

background:linear-gradient(tobottombottom,rgba0%,rgbarepeatscroll00transparent;

color:#fff;

/**Changesnonactivemenuitemstextcolortoblack**/

.top-bar-sectionulli>a{

color:#2d2d2d;

/**Changesthehoverstateofdropdownmenuitems**/

.top-bar-sectionul.dropdownlia:hover:not{

background:nonerepeatscroll00rgba;

/**IMPORTANTfillfortheuldropdowncontainer**/

.top-bar-sectionul.dropdown{

background:#333;

color:#fff;

/**Thisfixesthepositionandthecolorofthedropdownarrow**/

.top-bar-section.has-dropdown>a:after{

border-color:rgbatransparenttransparent;

margin-top:2.5px;

我们已经改变菜单的好几个地方,如首先,我们就改变激活菜单默认的黑背景为“CSS渐变”,接着给不激活菜单添加hover状态,并改变里面的文字颜色为深灰色,目的是显示得更为清晰。然后.top-bar-section li:hover 的样式将使得下拉菜单里的子项目被鼠标悬空时显示特定效果。为了完善样式,我们ul.dropdown添加一个背景颜色和重新设置下拉菜单箭头的位置,是因为我们内边距适应.top-bar-section。

第三步:效果

重新刷新页面,看一下现在的效果,我们还没完成样式的编写,只是想看看当调整浏览器的大小时,页面效果是否显示正常。接下来我们将添加“媒体查询”代码来实现这种效果。

编写媒体查询

第一步:媒体查询

我们需要做些操作来使得使用我们自定义样式的菜单栏能够适应不断缩小的屏幕。这里主要涉及到添加一些内边距、行高、文本颜色和背景颜色。如下CSS代码示例,查看每个section的注释。

@mediaonlyscreenand{

/*Makestheresponsivemenufitinthenavigationcontainerandchangeitsbackgroundtoblack*/

.top-barul{

background-color:rgba;

padding-bottom:13px;

/*Changenonactivemenuitemcolortoblack*/

.top-bar-sectionulli>a{

color:#fff;

/*Givesthedropdownulablackfill*/

.top-bar-sectionul{

background:#000;

/*GivetheBACKbuttonaftergoinginasubmenutheappropriatefilling*/

.top-bar-section.dropdownli.titleh5a{

line-height:57px;

/*Thisfixesthepositionandthecolorofthedropdownarrow*/

.top-bar-section.has-dropdown>a:after{

border-color:rgbatransparenttransparent;

margin-top:2.5px;

}/*endmediaquery*/

第二步:享受你的效果

保存文件,然后重新刷新页面,不断地调整浏览器窗口的大小,你就会看到菜单栏都能很好地展示出来。

总结

最后,总结一下此教程:我们如何利用Foundation5框架里的顶部工具栏来创建一个自定义菜单。需要记住的一点是,菜单栏不一定要被放置在页面的顶部的,可以使用网格系统来包含它,然后就可以放置任何你想放置的地方。

Foundation是一系列非常有用的工具可以快速地创建起响应式网站设计,当你不断地熟悉Foundation这个框架,就可以更高效地、创意地创建出更多好玩的东西出来,继续努力吧!

CSS

实现的关键就在那些打惊叹号的规则,写好显示与不显示时两个状态的下拉菜单的属性。同时添加了一些渐变以及平移让菜单显示更加自然。

 1 body{ margin:0; padding:0;
 2 
 3     font-size:18px;
 4 
 5     background-color:#aaa;
 6 }
 7 h1{margin:2em 0.4em 0 0.4em;color:#eee;font-size:3em;}
 8 #dropdown-wrapper{
 9     display:block;
10 
11     margin:4em 1em 0 1em;
12 }
13 #dropdown-wrapper li{
14     /*!!!!!!!!!!!!*/
15     display:inline-table;
16     padding:0;
17     margin:0;
18 
19     position:relative;
20 
21     width:10em;
22 
23     background:#fff;
24 
25      -webkit-transition:all ease-in-out 0.3s;
26     transition:all ease-in-out 0.3s;
27 }
28 #dropdown-wrapper span{
29     display:block;
30     padding:0.4em 1em;
31     width:10em;
32     color:#333;
33 }
34 #dropdown-wrapper span:after{
35     display:inline-block;
36     float:right;
37     content:">";
38 
39     -webkit-transform:rotate(0deg);
40     transform:rotate(0deg);/*为了渐变*/
41 
42      -webkit-transition:all ease-in-out 0.3s;
43     transition:all ease-in-out 0.3s;
44 }
45 #dropdown-wrapper li:hover span:after{
46     -webkit-transform:rotate(90deg);
47     transform:rotate(90deg);/*划过的时候那个右箭头旋转90度,变成朝下的啦*/
48 }
49 #dropdown-wrapper li ul{
50     /*!!!!!!!!!!!!*/
51     display:block;
52     position:absolute;
53 
54     padding:0;
55     margin:0;
56 
57     height:0;/*平时的时候隐藏下拉列表*/
58     line-height:0;/*0行高,这个的作用是用来制造一个文字展开的效果*/
59     overflow:hidden;
60 
61     color:#555;
62 
63     opacity:0;
64 
65     -webkit-transform:translateY(-1em);
66     transform: translateY(-1em);
67 
68      -webkit-transition:all ease-in-out 0.3s;
69     transition:all ease-in-out 0.3s;
70 }
71 #dropdown-wrapper li ul>li{
72     padding:0.7em 1em;
73 
74 }
75 #dropdown-wrapper li:hover ul{
76     /*!!!!!!!!!!!!*/
77     /*这是容器处于光标下时的下拉列表的状态,
78      *这个时候就是要做的就是显示下拉菜单咯
79     */
80     opacity:1;
81     height:auto;
82     line-height:1em;
83 
84     -webkit-transform: translaY(0);
85     transform: translateY(0);
86 }
87 #dropdown-wrapper li:hover span{
88     color:rgb(0,173,238);
89 }
90 #dropdown-wrapper li:hover ul>li:hover{
91     background:rgb(0,173,238);
92     color:#eee;
93 }

一、圆角(border-radius)是向元素添加圆角边框。

      border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角、右上角、右下角和左下角,顺时针 */ 

二、阴影 (box-shadow)

  box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];

  图片 1

  注意:inset 可以写在参数的第一个或最后一个,其它位置是无效的。

  .box_shadow
    {   

             box-shadow:4px 2px 6px #333333 inset;   

           }

  添加多个阴影:

  以上的语法的介绍,就这么简单,如果添加多个阴影,只需用逗号隔开即可。如:

  .box_shadow{ box-shadow:3px 2px 5px #f00, -3px -2px 5px #000, 0px 0px 12px 5px #33CC00 inset; }

 

三、边框应用图片( border-image)

  border-image的语法:

  图片 2

代码:

  #border_image {
    margin:0 auto;
    height:100px;
    line-height:100px;
    text-align:center;
    font-size:30px;
    width:450px;
    border:15px solid #ccc;
    border-image:url(images/1.jpg) 70 repeat;
  }
  <div id="border_image">
     请为我镶嵌上漂亮的画框吧
  </div>

四、颜色

      background-color:rgba(100,120,60,0.5);

,块元素里面再添加一个块元素

效果预览

这里用纯CSS实现一个简单的单级下拉菜单,鼠标划过菜单标题时显示下拉菜单。

 

,这也就是搭起基本的网格结构。

帮忙写个简单下拉菜单代码

已经过IE6,Opera测试,把下面代码复制粘贴到文本文件,改后缀为.html,双击即可看到效果,运行时要能上网,除非你把jquery-1.5.2.min.js下载到本地

<html xmlns="www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="code.jquery.com/jquery-1.5.2.min.js"></script>
</head>
<style>
body{background:#000;margin:0;padding:0;}
ul,li,hr{margin:0;padding:0;float:left;list-style:none;}
a{font-size:12px;font-weight:normal;font-family:"宋体";color:#999;text-decoration:none;text-

align:center;}
a:hover{color:orange;}
#nav{height:32px;background:#eee;width:100%;}
#nav a,#nav a.hover{width:88px;height:32px;float:left;color:#444;font:12px;font-weight:bold;font

-family:tahoma;text-decoration:none;line-height:32px;text-align:center;display:block;border-

right:1px solid #f5f2f0;border-left:1px solid #e0e0e0;}
#nav a:hover,#nav a.hover{background:orange;color:#fff;}

hr{width:100%;height:0px;border:none;border-top:1px solid #fff;overflow:hidden;font-

size:1px;display:block;clear:both;
line-height:1px;}
*html hr{margin-bottom:-14px;}
hr.h1{border-color:#777;}
hr.h2{border-color:#555;}
hr.h3{border-color:#333;}

#cbox{position:absolute;top:32px;left:0;}
#cbox ul{width:150px;background:#333;position:absolute;display:none;}
#cbox ul li{display:block;}
#cbox ul......余下全文>>  

CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能。 目前主流浏览器chrome、safari、firefox、opera、甚至360都已经支持了CSS3大部分功能了,IE10以后也开始全面支持CSS3了。在编写CSS3样式时,不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分,是浏览器的私有属性,虽然目前较新版本的浏览器都是不需要前缀的,但为了更好的向前兼容前缀还是少不了的。

index.html文件里面已经预包含一些HTML代码。你可以保留

简单的单级下拉菜单实现,级下拉菜单

五、渐变色彩

      CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial)。

  参数:

  图片 3     

  用法:

  图片 4

 六、 文字与字体

  text-overflow用来设置是否使用一个省略标记(...)标示对象内文本的溢出。

 七、文本阴影text-shadow

 八、1、(background-origin)设置元素背景图片的原始起始位置

          background-origin : border-box | padding-box | content-box;

      2、background-clip         用来将背景图片做适当的裁剪以适应实际需要。

    background-clip : border-box | padding-box | content-box | no-clip

  3、background-size    设置背景图片的大小,以长度值百分比显示,还可以通过covercontain来对图片进行伸缩。

    background-size: auto | <长度值> | <百分比> | cover | contain

    取值说明:

    1、auto:默认值,不改变背景图片的原始高度和宽度;

    2、<长度值>:成对出现如200px 50px,将背景图片宽高依次设置为前面两个值,当设置一个值时,将其作为图片宽度值来等比缩放

    3、<百分比>:0%~100%之间的任何值,将背景图片宽高依次设置为所在元素宽高乘以前面百分比得出的数值,当设置一个值时同上;

    4、cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器

    5、contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止

  4、multiple backgrounds    

    .demo{
      width: 300px;
      height: 140px;
      border: 1px solid #999;

      background-image: url(),
      url(),
      url();
      background-position: left top, 120px 0, 230px 0;
      background-repeat: no-repeat, no-repeat, no-repeat;

      margin:0 0 20px 0;
    }

    

    .task {
      width: 300px;
      height: 140px;
      border: 1px solid #999;

      background:url() no-repeat left top/80% 40%,
      url() no-repeat right bottom/50% 50%;
    }

  九、 css3属性选择器

    1.属性选择器

         <style type="text/css">  

      a[class^=column]{

      background: red;
      color:#fff;
      }
      a[href$=doc]{
      background: green;;
      color:#fff;
      }
      a[title*=box]{
      background: blue;
      color: #fff;
      }
    </style>

    2.结构性伪类选择器—root()

      “:root”选择器等同于<html>元素,简单点说:

:root{background:orange}

html {background:orange;}

      得到的效果等同。

      建议使用:root方法。

    3.结构性伪类选择器—not

      给表单中除submit按钮之外的input元素添加红色边框,CSS代码可以写成:

      form { width: 200px; margin: 20px auto; }

      div { margin-bottom: 20px; }

      input:not([type="submit"]){ border:1px solid red; }

 

本文由美狮美高梅官方网站发布,转载请注明来源

关键词: