css

显示标签为“css”的博文。显示所有博文
显示标签为“css”的博文。显示所有博文

2011年12月5日星期一

<转>CSS命名规范大全


From Evernote:

<转>CSS命名规范大全

Clipped from: http://jennycn.iteye.com/blog/1207732
一.文件命名规范

样式文件命名
引用
主要的 master.css
布局,版面 layout.css
专栏 columns.css
文字 font.css
打印样式 print.css
主题 themes.css


CSS ID 的命名
引用
页头:header
登录条:loginbar
标志:logo
侧栏:sidebar
广告:banner
导航:nav
子导航:subnav
菜单:menu
子菜单:submenu
搜索:search
滚动:scroll
页面主体:main
内容:content
标签页:tab
文章列表:list
提示信息:msg
小技巧:tips
栏目标题:title
加入:joinus
指南:guild
服务:service
热点:hot
新闻:news
下载:download
注册:regsiter
状态:status
按钮:btn
投票:vote
合作伙伴:partner
友情链接:friendlink
页脚:footer
版权:copyright
外 套:  wrap
主导航:  mainnav
子导航:  subnav
页 脚:  footer
整个页面: content
页 眉:  header
页 脚:  footer
商 标:  label
标 题:  title
主导航:  mainbav(globalnav)
顶导航:  topnav
边导航:  sidebar
左导航:  leftsidebar
右导航:  rightsidebar
旗 志:  logo
标 语:  banner
菜单内容1: menu1content
菜单容量: menucontainer
子菜单:  submenu
边导航图标:sidebarIcon
注释:   note
面包屑:  breadcrumb(即页面所处位置导航提示)
容器:   container
内容:   content
搜索:   search
登陆:   Login
功能区:  shop(如购物车,收银台)
当前的   current


网站常用中英文对照表
引用
网站导航 Site Map
公司简介 Profile or Company Profile or Company
公司设备 Equipment Equipment
公司荣誉 Glories Glories
企业文化 Culture Culture
产品展示 Product Product
资质认证 Quality Certification
企业规模 Scale Scale
营销网络 Sales Network
组织机构 organization organization
合作加盟 Join In Cooperation
技术力量 Technology Technology
经理致辞 Manager`s oration
发展历程 Development History
工程案例 Engineering Projects
业务范围 Business Scope
分支机构 Branches
供求信息 Supply & Demand
经营理念 Operation Principle
产品销售 Sales Sales
联系我们 Contact Us Contact Us
信息发布 Information Information
返回首页 Homepage Homepage
产品定购 order order
分类浏览 Browse By Category
电子商务 E-business
公司实力 Strength Strength
版权所有 Copy Right
友情连结 Hot Link
应用领域 Application Fields
人力资源 Human Resource Hr
领导致辞 Leader`s oration
企业资质 Enterprise Qualification
行业新闻 Trade News
行业动态 Trends
客户留言 Customer Message
客户服务 Customer Service
新闻动态 News & Trends
公司名称 Company Name
销售热线 Sales Hot-Line
联系人 Contact Person
您的要求 Your Requirements
建设中 In Construction
证书 Certificate Certificate
地址 ADD Add
邮编 Postal Code Zipcode
电话 TEL Tel
传真 FAX Fax
产品名称 Product Name
产品说明 Description Description
价格 Price
品牌 Brand
规格 Specification
尺寸 Size
生产厂家 Manufacuturer Manufacturer
型号 Model
产品标号 Item No.
技术指标 Technique Data
产品描述 Description
产地 Production Place
销售信息 Sales Information
用途 Application
论坛 Forum
在线订购 On-line order
招商 Enterprise-establishing
招标 Bid Inviting
综述 General
业绩 Achievements
招聘 Join Us
求贤纳士 Join Us
大事 Great Event
动态 Trends
服务 Service
投资 Investment
行业 Industry
规划 Programming
环境 Environment
发送 Delivery
提交 Submit
重写 Reset
登录 Enter
注册 Login
中国企业网技术支持 Powered By Ce.Net.Cn
社区 Community
业务介绍 Business Introduction
在线调查 Online Inquiry Inquiry
下载中心 Download
会员登陆 Member Entrance
意见反馈 Feedback
常见问题 FAQ
中心概况 General Profile
教育培训 Education & Training
游乐园 Amusement Park
在线交流 Online Communication
专题报道 Special Report


  常用类的命名应尽量以常见英文单词为准,做到通俗易懂,并在适当的地方加以注释。对于二级类/ID命名,则采用组合书写的模式,后一个单词的首字母应大写:诸如"搜索框"则应命名为"searchInput"、"搜索图标"命名这"searchIcon"、"搜索按钮"命名为 "searchBtn"……


一. 常规书写规范及方法

  1. 选择DOCTYPE:

  XHTML 1.0 提供了三种DTD声明可供选择:

  过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  严格的(Strict):要求严格的DTD,你不能使用任何表现层的标识和属性,例如<br>。完整代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

  框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

  理想情况当然是严格的DTD,但对于我们大多数刚接触web标准的设计师来说,过渡的DTD(XHTML 1.0 Transitional)是目前理想选择(包括本站,使用的也是过渡型DTD)。因为这种DTD还允许我们使用表现层的标识、元素和属性,也比较容易通过W3C的代码校验。

  2. 指定语言及字符集:

  为文档指定语言:

  <html xmlns="http://www.w3.org/1999/xhtml" lang="en">

  为了被浏览器正确解释和通过W3C代码校验,所有的XHTML文档都必须声明它们所使用的编码语言;如:
  常用的语言定义:

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8″ />
  标准的XML文档语言定义:
  <?xml version="1.0″ encoding=" utf-8″?>
  针对老版本的浏览器的语言定义:
  <meta http-equiv="Content-Language" content=" utf-8″ />
  为提高字符集,建议采用"utf-8"。

  3. 调用样式表:

  外部样式表调用:

  页面内嵌法:就是将样式表直接写在页面代码的head区。如:

  <style type="text/css"><!– body { background : white ; color : black ; } –> </style>
  外部调用法:将样式表写在一个独立的.css文件中,然后在页面head区用类似以下代码调用。

  <link rel="stylesheet" rev="stylesheet" href="css/style.css" type="text/css" media="all" />

  在符合web标准的设计中,推荐使用外部调用法,可以不修改页面只修改.css文件而改变页面的样式。如果所有页面都调用同一个样式表文件,那么改一个样式表文件,可以改变所有文件的样式。

  4、选用恰当的元素:

  根据文档的结构来选择HTML元素,而不是根据HTML元素的样式来选择。例如,使用P元素来包含文字段落,而不是为了换行。如果在创建文档时找不到适当的元素,则可以考虑使用通用的div 或者是span;

  避免过渡使用div和span。少量、适当的使用div和span元素可以使文档的结构更加清晰合理并且易于使用样式;

  尽可能少地使用标签和结构嵌套,这样不但可以使文档结构清晰,同时也可以保持文件的小巧,在提高用户下载速度的同时,也易于浏览器对文档的解释及呈视;

  5、派生选择器:

  可以使用派生选择器给一个元素里的子元素定义样式,在简化命名的同时也使结构更加的清晰化,如:

  .mainMenu ul li {background:url(images/bg.gif;)}

  6、辅助图片用背影图处理:

  这里的"辅助图片"是指那些不是作为页面要表达的内容的一部分,而仅仅用于修饰、间隔、提醒的图片。将其做背影图处理,可以在不改动页面的情况下通过CSS样式来进行改动,如:

  #logo {background:url(images/logo.jpg) #FEFEFE no-repeat right bottom;}

  7、结构与样式分离:

  在页面里只写入文档的结构,而将样式写于css文件中,通过外部调用CSS样式表来实现结构与样式的分离。

  8、文档的结构化书写:

  页面CSS文档都应采用结构化的书写方式,逻辑清晰易于阅读。如:

  <div id="mainMenu">
  <ul>
  <li><a href="#" >首页</a></li>
  <li><a href="#" >介绍</a></li>
  <li><a href="#" >服务</a></li>
  </ul>
  </div>

  
  #mainMenu {
  width:100%;
  height:30px;
  background:url(images/mainMenu_bg.jpg) repeat-x;
  }
  #mainMenu ul li {
  float:left;
  line-height:30px;
  margin-right:1px;
  cursor:pointer;
  }
  

  9、鼠标手势:

  在XHTML标准中,hand只被IE识别,当需要将鼠标手势转换为"手形"时,则将"hand"换为"pointer",即"cursor:pointer;


CSS 布局口诀


From Evernote:

CSS 布局口诀

Clipped from: http://marssuburbs.iteye.com/blog/1203041
如果在用CSS设计布局时遇到BUG,请认真阅读以下内容,非常容易记忆的,不知道哪位高人把CSS BUG编成了顺口溜了!看看好不好记住呢?

一、IE边框若显若无,须注意,定是高度设置已忘记;

二、浮动产生有缘故,若要父层包含住,紧跟浮动要清除,容器自然显其中;

三、三像素文本慢移不必慌,高度设置帮你忙;

四、兼容各个浏览须注意,默认设置行高可能是杀手;

五、独立清除浮动须铭记,行高设无,高设零,设计效果兼浏览;

六、学布局须思路,路随布局原理自然直,轻松驾驭html,流水布局少hack,代码清爽,兼容好,友好引擎喜欢迎。

七、所有标签皆有源,只是默认各不同,span是无极,无极生两仪—内联和块级,img较特殊,但也遵法理,其他只是改造各不同,一个*号全归原,层叠样式理须多练习,万物皆规律。

八、图片链接排版须小心,图片链接文字链接若对齐,padding和vertical-align:middle要设定,虽差微细倒无妨。

九、IE浮动双边距,请用display:inline拘。

十、列表横向排版,列表代码须紧靠,空隙自消须铭记。


=eean
overflow解决float浮动后高度自适应问题
overflow:auto; zoom:1;
overflow:auto;是让高度自适应, zoom:1;是为了兼容IE6,也可以用height:1%;的方式来解决。

2011年最新使用CSS3实现各种独特悬浮效果的教程


From Evernote:

2011年最新使用CSS3实现各种独特悬浮效果的教程

Clipped from: http://www.gbin1.com/technology/css/20111103original-hover-effects-with-css3/index.html
CSS3的功能非常强大,这个毋庸置疑。在这篇教程中我们将使用一些独特的方式来实现一些特效。我们使用CSS3的transition属性来创建图片缩略图的悬浮效果。当鼠标悬浮在缩略图上,我们将显示一些图片说明,没一个演示中我们使用一种独特的方式。

在线演示  在线下载

友情提示:因为使用CSS3,所以大家请使用支持CSS3的现代浏览器比如,Safari来查看演示,否则,你看到的所有的演示的行为都一样。

HTML

首先我们构建一个view的容器,然后将需要的元素都放入view,如下

<div class="view">
     <img src="image.gif" />
     <div class="mask">
     <h2>Title</h2>
     <p>Your Text</p>
         <a href="#" class="info">Read More</a>
     </div>
</div>

CSS

以下我们定义了所有演示中共同使用的CSS定义:
.view {
    width: 300px;
    height: 200px;
    margin: 10px;
    float: left;
    border: 10px solid #fff;
    overflow: hidden;
    position: relative;
    text-align: center;
    box-shadow: 1px 1px 2px #e6e6e6;
    cursor: default;
    background: #fff url(../images/bgimg.jpg) no-repeat center center
}
.view .mask, .view .content {
    width: 300px;
    height: 200px;
    position: absolute;
    overflow: hidden;
    top: 0;
    left: 0
}
.view img {
    display: block;
    position: relative
}
.view h2 {
    text-transform: uppercase;
    color: #fff;
    text-align: center;
    position: relative;
    font-size: 17px;
    padding: 10px;
    background: rgba(0, 0, 0, 0.8);
    margin: 20px 0 0 0
}
.view p {
    font-family: Georgia, serif;
    font-style: italic;
    font-size: 12px;
    position: relative;
    color: #fff;
    padding: 10px 20px 20px;
    text-align: center
}
.view a.info {
    display: inline-block;
    text-decoration: none;
    padding: 7px 14px;
    background: #000;
    color: #fff;
    text-transform: uppercase;
    box-shadow: 0 0 1px #000
}
.view a.info:hover {
    box-shadow: 0 0 5px #000
}
以上CSS和HTML定义完成后,我们进入正题,我们将使用CSS3定义每一个演示不同的展示行为。

演示1

添加一个class定义view-first,这里我们将结合view定义来产生特效,加入HTML标签中。 类似这个定义,以下的其它演示将使用view-second,view-third, view-four来依次定义。

<div class="view view-first">
     
</div>

以下是第一个例子中transition的基本CSS3定义:

.view-first img {
    transition: all 0.2s linear;
}
.view-first .mask {
    opacity: 0;
    background-color: rgba(219,127,8, 0.7);
    transition: all 0.4s ease-in-out;
}
.view-first h2 {
    transform: translateY(-100px);
    opacity: 0;
    transition: all 0.2s ease-in-out;
}
.view-first p {
    transform: translateY(100px);
    opacity: 0;
    transition: all 0.2s linear;
}
.view-first a.info{
    opacity: 0;
    transition: all 0.2s ease-in-out;
}


下面我们将介绍核心代码。当你将鼠标悬浮在图片上方时,你可以使用delay属性来模拟简单动画效果。这个例子中我们没有在正常class定义中加入transition-delay, 而是在hover中加入定义。这样当鼠标移出时,延缓效果就会被执行。

.view-first:hover img {
    transform: scale(1.1);
}
.view-first:hover .mask {
    opacity: 1;
}
.view-first:hover h2,
.view-first:hover p,
.view-first:hover a.info {
    opacity: 1;
    transform: translateY(0px);
}
.view-first:hover p {
    transition-delay: 0.1s;
}
.view-first:hover a.info {
    transition-delay: 0.2s;
}

 

演示2

2011年最新使用CSS3实现各种独特悬浮效果的教程

第二演示我中我们将加入特别的view-second定义。并且修改代码如下:

<div class="view view-second">
    <img src="images/5.jpg" />
    <div class="mask"></div>
    <div class="content">
        <h2>Hover Style #2</h2>
        <p>Some description</p>
        <a href="#" class="info">Read More</a>
    </div>
</div>


这里我们将定义mask的class来满足我们需求,我们将应用tranform属性来产生一个方形。如下:

.view-second img {
    transition: all 0.2s ease-in;
}
.view-second .mask {
    background-color: rgba(115,146,184, 0.7);
    width: 300px;
    padding: 60px;
    height: 300px;
    opacity: 0;
    transform: translate(265px, 145px) rotate(45deg);
    transition: all 0.2s ease-in-out;
}
.view-second h2 {
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    background: transparent;
    margin: 20px 40px 0px 40px;
    transform: translate(200px, -200px);
    transition: all 0.2s ease-in-out;
}
.view-second p {
    transform: translate(-200px, 200px);
    transition: all 0.2s ease-in-out;
}
.view-second a.info {
    transform: translate(0px, 100px);
    transition: all 0.2s 0.1s ease-in-out;
}


这里我们使用translate 变形方式来移动我们的元素。 并且让mask旋转。这样descrption中的信息每一个都会延缓一会儿。

.view-second:hover .mask {
    opacity:1;
    transform: translate(-80px, -125px) rotate(45deg);
}
.view-second:hover h2 {
    transform: translate(0px,0px);
    transition-delay: 0.3s;
}
.view-second:hover p {
    transform: translate(0px,0px);
    transition-delay: 0.4s;
}
.view-second:hover a.info {
    transform: translate(0px,0px);
    transition-delay: 0.5s;
}

 

演示3

这个演示中,我们将使用translate和roate变形方式来显示我们的内容:

.view-third img {
    transition: all 0.2s ease-in;
}
.view-third .mask {
    background-color: rgba(0,0,0,0.6);
    opacity: 0;
    transform: translate(460px, -100px) rotate(180deg);
    transition: all 0.2s 0.4s ease-in-out;
}
.view-third h2{
    transform: translateY(-100px);
    transition: all 0.2s ease-in-out;
}
.view-third p {
    transform: translateX(300px) rotate(90deg);
    transition: all 0.2s ease-in-out;
}
.view-third a.info {
    transform: translateY(-200px);
    transition: all 0.2s ease-in-out;
}


这里有很简单的指导来应用于悬浮。我们将通过使用transition-delay来使description元素出现的逆向过程来展示。

.view-third:hover .mask {
    opacity:1;
    transition-delay: 0s;
    transform: translate(0px, 0px);
}
.view-third:hover h2 {
    transform: translateY(0px);
    transition-delay: 0.5s;
}
.view-third:hover p    {
    transform: translateX(0px) rotate(0deg);
    transition-delay: 0.4s;
}
.view-third:hover a.info {
    transform: translateY(0px);
    transition-delay: 0.3s;
}

 

演示4

第四个演示中,我们将执行一个旋转的缩放效果。使用scale变形来实现。如下:

.view-fourth img {
    transition: all 0.4s ease-in-out 0.2s;
    opacity: 1;
}
.view-fourth .mask {
    background-color: rgba(0,0,0,0.8);
    opacity: 0;
    transform: scale(0) rotate(-180deg);
    transition: all 0.4s ease-in;
    border-radius: 0px;
}
.view-fourth h2{
    opacity: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    background: transparent;
    margin: 20px 40px 0px 40px;
    transition: all 0.5s ease-in-out;
}
.view-fourth p {
    opacity: 0;
    transition: all 0.5s ease-in-out;
}
.view-fourth a.info {
    opacity: 0;
    transition: all 0.5s ease-in-out;
}


这里有简单说明来实现效果,使用CSS3你什么都可以实现 , :)

.view-fourth:hover .mask {
    opacity: 1;
    transform: scale(1) rotate(0deg);
    transition-delay: 0.2s;
}
.view-fourth:hover img       {
    transform: scale(0);
    opacity: 0;
    transition-delay: 0s;
}
.view-fourth:hover h2,
.view-fourth:hover p,
.view-fourth:hover a.info{
    opacity: 1;
    transition-delay: 0.5s;
}

 

演示5

第五个演示中,我们使用translate及其ease-in-out方式来从左边幻灯展示内容

.view-fifth img {
    transition: all 0.3s ease-in-out;
}
.view-fifth .mask {
    background-color: rgba(146,96,91,0.3);
    transform: translateX(-300px);
    opacity: 1;
    transition: all 0.4s ease-in-out;
}
.view-fifth h2{
    background: rgba(255, 255, 255, 0.5);
    color: #000;
    box-shadow: 0px 1px 3px rgba(159, 141, 140, 0.5);
}
.view-fifth p{
    opacity: 0;
    color: #333;
    transition: all 0.2s linear;
}


这个悬浮效果将让图片从右边飞出,description内容从左边进入

.view-fifth:hover .mask {
    transform: translateX(0px);
}
.view-fifth:hover img {
    transform: translateX(300px);
    transition-delay: 0.1s;
}
.view-fifth:hover p{
    opacity: 1;
    transition-delay: 0.4s;
}

 

演示6

这个演示中我们将让description内容从正前方出来,缩小到原来大小。信息按钮将从低端显示

.view-sixth img {
    transition: all 0.4s ease-in-out 0.5s;
}
.view-sixth .mask{
    background-color: rgba(146,96,91,0.5);
    opacity:0;
    transition: all 0.3s ease-in 0.4s;
}
.view-sixth h2{
    opacity:0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    background: transparent;
    margin: 20px 40px 0px 40px;
    transform: scale(10);
    transition: all 0.3s ease-in-out 0.1s;
}
.view-sixth p {
    opacity:0;
    transform: scale(10);
    transition: all 0.3s ease-in-out 0.2s;
}
.view-sixth a.info {
    opacity:0;
    transform: translateY(100px);
    transition: all 0.3s ease-in-out 0.1s;
}


反向的transition将延迟以偏让显示过程流畅

.view-sixth:hover .mask {
    opacity:1;
    transition-delay: 0s;
}
.view-sixth:hover img {
    transition-delay: 0s;
}
.view-sixth:hover h2 {
    opacity: 1;
    transform: scale(1);
    transition-delay: 0.1s;
}
.view-sixth:hover p {
    opacity:1;
    transform: scale(1);
    transition-delay: 0.2s;
}
.view-sixth:hover a.info {
    opacity:1;
    transform: translateY(0px);
    transition-delay: 0.3s;

}

 

演示7

这个演示将让图片旋转并且缩小。然后description内容将旋转出现。

.view-seventh img{
    transition: all 0.5s ease-out;
    opacity: 1;
}
.view-seventh .mask {
    background-color: rgba(77,44,35,0.5);
    transform: rotate(0deg) scale(1);
    opacity: 0;
    transition: all 0.3s ease-out;
    transform: translateY(-200px) rotate(180deg);
}
.view-seventh h2{
    transform: translateY(-200px);
    transition: all 0.2s ease-in-out;
}
.view-seventh p {
    transform: translateY(-200px);
    transition: all 0.2s ease-in-out;
}
.view-seventh a.info {
    transform: translateY(-200px);
    transition:  all 0.2s ease-in-out;
}


悬浮时我们为description元素添加一个延迟。这将会先显示旋转图片,然后description信息会从图片中出现。在逆向变化中,所有元素都立刻出现,我们可以看到图片复原。

.view-seventh:hover img{
    transform: rotate(720deg) scale(0);
    opacity: 0;
}
.view-seventh:hover .mask {
    opacity: 1;
    transform: translateY(0px) rotate(0deg);
    transition-delay: 0.4s;
}
.view-seventh:hover h2 {
    transform: translateY(0px);
    transition-delay: 0.7s;
}
.view-seventh:hover p {
    transform: translateY(0px);
    transition-delay: 0.6s;
}
.view-seventh:hover a.info {
    transform: translateY(0px);
    transition-delay: 0.5s;
}

 

演示8

 

.view-eighth .mask {
    background-color: rgba(255, 255, 255, 0.7);
    top: -200px;
    opacity: 0;
    transition: all 0.3s ease-out 0.5s;
}
.view-eighth h2{
    transform: translateY(-200px);
    transition: all 0.2s ease-in-out 0.1s;
}
.view-eighth p {
    color: #333;
    transform: translateY(-200px);
    transition: all 0.2s ease-in-out 0.2s;
}
.view-eighth a.info {
    transform: translateY(-200px);
    transition:  all 0.2s ease-in-out 0.3s;
}

我们添加动画到mask元素并且定义合适的延迟给description元素

.view-eighth:hover .mask {
    opacity: 1;
    top: 0px;
    transition-delay: 0s;
    animation: bounceY 0.9s linear;
}
.view-eighth:hover h2 {
    transform: translateY(0px);
    transition-delay: 0.4s;
}
.view-eighth:hover p {
    transform: translateY(0px);
    transition-delay: 0.2s;
}
.view-eighth:hover a.info {
    transform: translateY(0px);
    transition-delay: 0s;
}

 

演示9

这个演示中我们使用俩个mask元素来实现幻灯右下和左上进入效果

<div class="view view-ninth">
    <img src="images/11.jpg" />
    <div class="mask mask-1"></div>
    <div class="mask mask-2"></div>
    <div class="content">
        <h2>Hover Style #9</h2>
        <p>Some Text</p>
        <a href="#" class="info">Read More</a>
    </div>
</div>


俩个mask将使用不同的transition和tranform。将一个设置到顶端,另外一个设置到底端。

.view-ninth .mask-1,
.view-ninth .mask-2{
    background-color: rgba(0,0,0,0.5);
    height: 361px;
    width: 361px;
    background: rgba(119,0,36,0.5);
    opacity: 1;
    transition: all 0.3s ease-in-out 0.6s;
}
.view-ninth .mask-1 {
    left: auto;
    right: 0px;
    transform: rotate(56.5deg) translateX(-180px);
    transform-origin: 100% 0%;
}
.view-ninth .mask-2 {
    top: auto;
    bottom: 0px;
    transform: rotate(56.5deg) translateX(180px);
    transform-origin: 0% 100%;
}


内容将设置让它感觉出现于俩个mask接触的边缘

.view-ninth .content{
    background: rgba(0,0,0,0.9);
    height: 0px;
    opacity: 0.5;
    width: 361px;
    overflow: hidden;
    transform: rotate(-33.5deg) translate(-112px,166px);
    transform-origin: 0% 100%;
    transition: all 0.4s ease-in-out 0.3s;
}
.view-ninth h2{
    background: transparent;
    margin-top: 5px;
    border-bottom: 1px solid rgba(255,255,255,0.2);
}
.view-ninth a.info{
    display: none;
}


悬浮时,我们将内容从开缝中取出,并且使mask接触边缘

.view-ninth:hover .content{
    height: 120px;
    width: 300px;
    opacity: 0.9;
    top: 40px;
    transform: rotate(0deg) translate(0px,0px);
}
.view-ninth:hover .mask-1,
.view-ninth:hover .mask-2{
    transition-delay: 0s;
}
.view-ninth:hover .mask-1{
    transform: rotate(56.5deg) translateX(1px);
}
.view-ninth:hover .mask-2 {
    transform: rotate(56.5deg) translateX(-1px);
}

 

演示10

最后一个演示,我们将放大图片,然后淡出,然后把description显示到前端。我们可以使用scale transform和opacity。

 

.view-tenth img {
    transform: scaleY(1);
    transition: all 0.7s ease-in-out;
}
.view-tenth .mask {
    background-color: rgba(255, 231, 179, 0.3);
    transition: all 0.5s linear;
    opacity: 0;
}
.view-tenth h2{
    border-bottom: 1px solid rgba(0, 0, 0, 0.3);
    background: transparent;
    margin: 20px 40px 0px 40px;
    transform: scale(0);
    color: #333;
    transition: all 0.5s linear;
    opacity: 0;
}
.view-tenth p {
    color: #333;
    opacity: 0;
    transform: scale(0);
    transition: all 0.5s linear;
}
.view-tenth a.info {
    opacity: 0;
    transform: scale(0);
    transition: all 0.5s linear;
}


悬浮时,我们简单的放大图片然后通过设置opacity为0实现淡出效果

.view-tenth:hover img {
    transform: scale(10);
    opacity: 0;
}
.view-tenth:hover .mask {
    opacity: 1;
}
.view-tenth:hover h2,
.view-tenth:hover p,
.view-tenth:hover a.info{
    transform: scale(1);
    opacity: 1;
}

 

总结

希望大家能喜欢CSS3开发的巨大潜力。很快我们就可以避免使用javascript来实现复杂的特效了。希望这篇文章能给你web开发带来灵感

原文来自: 2011年最新使用CSS3实现各种独特悬浮效果的教程


彻底弄懂CSS盒子模式一(DIV布局快速入门)


From Evernote:

彻底弄懂CSS盒子模式一(DIV布局快速入门)

Clipped from: http://lsn-1212.iteye.com/blog/1284077
实例网页网址:http://www.blueidea.com/articleimg/2007/03/4545/css2.html

2.彻底弄懂CSS盒子模式二(导航栏实例) 【论坛讨论】http://www.blueidea.com/tech/web/2007/4563.asp

3.彻底弄懂CSS盒子模式三(浮动的表演和清除的自述) 【论坛讨论】http://www.blueidea.com/tech/web/2007/4579.asp
4.彻底弄懂CSS盒子模式四(绝对定位和相对定位) 【论坛讨论】
http://www.blueidea.com/tech/web/2007/4601.asp
5.彻底弄懂CSS盒子模式五(定位强化练习) 【论坛讨论】
http://www.blueidea.com/tech/web/2007/4602.asp
前言

      如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网

页标准设计,再或者说你的上司要你改变传统的表格排版方式,提高企业竞争力,那么你一定要接触到的一个知识点就是CSS的盒子模式,

这就是DIV排版的核心所在,传统的表格排版是通过大小不一的表格和表格嵌套来定位排版网页内容,改用CSS排版后,就是通过由CSS定义

的大小不一的盒子和盒子嵌套来编排网页。因为用这种方式排版的网页代码简洁,更新方便,能兼容更多的浏览器,比如PDA设备也能正常

浏览,所以放弃自己之前钟爱的表格排版也是值得的,更重要的是CSS排版网页的优势远远不只这些,本人在这里就不多说,自己可以去查

找相关信息。

理解CSS盒子模型

      什么是CSS的盒子模式呢?为什么叫它是盒子?先说说我们在网页设计中常听的属性名:内容(content)、填充(padding)、边框

(border)、边界(margin), CSS盒子模式都具备这些属性。

CSS盒子模式

这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也具有这些属性,所以叫它盒子模式。那

么内容就是盒子里装的东西;而填充就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;边框就是盒子本身了;至于

边界则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出嘛。在网页设计上,内容常指文字、图片等

元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS

盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。填充只有宽度属性,可以理解为生活中盒子里的抗震辅料厚度,

而边框有大小和颜色之分,我们又可以理解为生活中所见盒子的厚度以及这个盒子是用什么颜色材料做成的,边界就是该盒子与其它东西要

保留多大距离。在现实生活中,假设我们在一个广场上,把不同大小和颜色的盒子,以一定的间隙和顺序摆放好,最后从广场上空往下看,

看到的图形和结构就类似我们要做的网页版面设计了,如下图。

由"盒子"堆出来的网页版面


现在对CSS盒子模式理解多少了,如果还不够透彻,继续往下看,我会在后面举例,并延用盒子的概念来解释它。

转变我们的思路

  传统的前台网页设计是这样进行的:根据要求,先考虑好主色调,要用什么类型的图片,用什么字体、颜色等等,然后再用Photoshop

这类软件自由的画出来,最后再切成小图,再不自由的通过设计HTML生成页面,改用CSS排版后,我们要转变这个思想,此时我们主要考虑

的是页面内容的语义和结构,因为一个强CSS控制的网页,等做好网页后,你还可以轻松的调你想要的网页风格,况且CSS排版的另外一个目

的是让代码易读,区块分明,强化代码重用,所以结构很重要。如果你想说我的网页设计的很复杂,到后来能不能实现那样的效果?我要告

诉你的是,如果用CSS实现不了的效果,一般用表格也是很难实现的,因为CSS的控制能力实在是太强大了,顺便说一点的是用CSS排版有一

个很实用的好处是,如果你是接单做网站的,如果你用了CSS排版网页,做到后来客户有什么不满意,特别是色调的话,那么改起来就相当

容易,甚至你还可以定制几种风格的CSS文件供客户选择,又或者写一个程序实现动态调用,让网站具有动态改变风格的功能。

实现结构与表现分离

  在真正开始布局实践之前,再来认识一件事——结构和表现相分离,这也用CSS布局的特色所在,结构与表现分离后,代码才简洁,更

新才方便,这不正是我们学习CSS的目的所在吗?举个例来说P是结构化标签,有P标签的地方表示这是一个段落区块,margin是表现属性,

我要让一个段落右缩进2字高,有些人会想到加空格,然后不断地加空格,但现在可以给P标签指定一个CSS样式:P {text-indent: 2em;},

这样结果body内容部分就如下,这没有外加任何表现控制的标签:

<p>加进天涯社区有一段时间了,但一直没有时间写点东西,今天写了一篇有关CSS布局的文章,并力求通过一种通俗的语言来说明知

识点,还配以实例和图片,相信对初学CSS布局的人会带来一定的帮助。</p>
复制代码


如果还要对这个段落加上字体、字号、背景、行距等修饰,直接把对应的CSS加进P样式里就行了,不用像这样来写了:

<p><font color="#FF0000" face="宋体">段落内容</font></p>
复制代码


这个是结构和表现混合一起写的,如果很多段落有统一结构和表现的话,再这样累加写下去代码就繁冗了。

再直接列一段代码加深理解结构和表现相分离:

用CSS排版

<style type="text/css">
<!--
#photoList img{
  height:80;
  width:100;
  margin:5px auto;
}
-->
</style> <div id="photoList">
<img src="01.jpg" />
<img src="02.jpg" />
<img src="03.jpg" />
<img src="04.jpg" />
<img src="05.jpg" />
</div>
复制代码


不用CSS排版

<img src="01.jpg" width="100" height="80" align="middle" />
<img src="02.jpg" width="100" height="80" align="middle" />
<img src="03.jpg" width="100" height="80" align="middle" />
<img src="04.jpg" width="100" height="80" align="middle" />
<img src="05.jpg" width="100" height="80" align="middle" />
复制代码


  第一种方法是结构表现相分离,内容部分代码简单吧,如果还有更多的图片列表的话,那么第一种CSS布局方法就更有优势,我打个比

喻你好理解:我在BODY向你介绍一个人,我只对你说他是一个人,至于他是一个什么样的人,有多高,是男是女,你去CSS那里查下就知道

。这样我在BODY的工作就简单了,也就是说BODY的代码就简单了。如果BODY有一个团队人在那里,我在CSS记录一项就行了,这有点像Flash

软件里的元件和实例的概念,不同的实例共享同一个元件,这样动画文件就不大了,把这种想法移到CSS网页设计中,就是代码不复杂,网

页文件体积小能较快被客户端下载了。

演示地址:http://www.blueidea.com/articleimg/2007/03/4545/css1.html
用CSS排版减小网页文件体积


  像上面我做的那个版面,一共分为四个区块,每个区块的框架是一样的,这个框架就是用CSS写出来的,样式写一次,就可以被无数次

调用了(用class调用,而不是ID),只要改变其中的文字内容就可以生成风格统一的众多板块了,它的样式和结构代码是(请不

要直接复制生成网页,把下面代码分别粘贴到网页中它们应在的位置):

<style type="text/css">
<!--
* {margin:0px; padding:0px;}
body {
font-size: 12px;
margin: 0px auto;
height: auto;
width: 805px;
}
.mainBox {
border: 1px dashed #0099CC;
margin: 3px;
padding: 0px;
float: left;
height: 300px;
width: 192px;
}
.mainBox h3 {
float: left;
height: 20px;
width: 179px;
color: #FFFFFF;
padding: 6px 3px 3px 10px;
background-color: #0099CC;
font-size: 16px;
}
.mainBox p {
line-height: 1.5em;
text-indent: 2em;
margin: 35px 5px 5px 5px;
}
-->
</style>
<div class="mainBox">
<h3>前言</h3>
<p>正文内容</p>
</div>
<div class="mainBox">
<h3>CSS盒子模式</h3>
<p>正文内容 </p>
</div>
<div class="mainBox">
<h3>转变思想</h3>
<p>正文内容 </p>
</div>
<div class="mainBox">
<h3>熟悉步骤</h3>
<p>正文内容 </p>
</div>
复制代码


熟悉工作流程

  在真正开始工作之前我们脑海中要形成这样一种思想:表格是什么我不知道,在内容部分我不能让它再出现表现控制标签,如:font、

color、height、width、align等标签不能再出现,(简单说工作前先洗脑,忘掉以前的一惯做法,去接受和使用全新的方法),我不是单

纯的用DIV来实现排版的嵌套,DIV是块级元素,而像P也是块级元素,例如要分出几个文字内容块,不是一定要用DIV才叫DIV排版,不是

"<div>文字块一</div><div>文字块二</div><div>文字块三</div>",而用"<p>文字块一</p><p>文字块二</p><p>文字块三</p>"更合适



  用DIV+CSS设计思路是这样的: 1.用div来定义语义结构;2.然后用CSS来美化网页,如加入背景、线条边框、对齐属性等;3.最后在这

个CSS定义的盒子内加上内容,如文字、图片等(没有表现属性的标签),下面大家跟我一起来做一个实例加深对这个步骤的理解。先看结

果图:

演示地址:http://www.blueidea.com/articleimg/2007/03/4545/css2.html
CSS排版结果图


用div来定义语义结构
  现在我要给大家演示的是一个典型的版面分栏结构,即页头、导航栏、内容、版权(如下图),

典型版面分栏结构

其结构代码如下:

<div id="header"></div>
<div id="nav"></div>
<div id="content"></div>
<div id="footer"></div>
复制代码


  上面我们定义了四个盒子,按照我们想要的结果是,我们要让这些盒子等宽,并从下到下整齐排列,然后在整个页面中居中对齐,为了

方便控制,我们再把这四个盒子装进一个更大的盒子,这个盒子就是BODY,这样代码就变成:

<body>
<div id="header"></div>
<div id="nav"></div>
<div id="content"></div>
<div id="footer"></div>
</body>
复制代码


  最外边的大盒子(装着小盒子的大盒子)我们要让它在页面居中,并重定义其宽度为760像素,同时加上边框,那么它的样式是:

body {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin: 0px auto;
height: auto;
width: 760px;
border: 1px solid #006633;
}
复制代码


  页头为了简单起见,我们这里只要让它整个区块应用一幅背景图就行了,并在其下边界设计定一定间隙,目的是让页头的图像不要和下

面要做的导航栏连在一起,这样也是为了美观。其样式代码为:

#header {
height: 100px;
width: 760px;
background-image: url(headPic.gif);
background-repeat: no-repeat;
margin:0px 0px 3px 0px;
}
复制代码


  导航栏我做成像一个个小按钮,鼠标移上去会改变按钮背景色和字体色,那么这些小小的按钮我们又可以理解为小盒子,如此一来这是

一个盒子嵌套问题了,样式代码如下:

#nav {
height: 25px;
width: 760px;
font-size: 14px;
list-style-type: none;
}
#nav li {
float:left;
}
#nav li a{
color:#000000;
text-decoration:none;
padding-top:4px;
display:block;
width:97px;
height:22px;
text-align:center;
background-color: #009966;
margin-left:2px;
}
#nav li a:hover{
background-color:#006633;
color:#FFFFFF;
}
复制代码


  内容部分主要放入文章内容,有标题和段落,标题加粗,为了规范化,我用H标签,段落要自动实现首行缩进2个字,同时所有内容看起

来要和外层大盒子边框有一定距离,这里用填充。内容区块样式代码为:

#content {
height:auto;
width: 740px;
line-height: 1.5em;
padding: 10px;
}
#content p {
text-indent: 2em;
}
#content h3 {
font-size: 16px;
margin: 10px;
复制代码


  版权栏,给它加个背景,与页头相映,里面文字要自动居中对齐,有多行内容时,行间距合适,这里的链接样式也可以单独指定,我这

里就不做了。其样式代码如下:

#footer {
height: 50px;
width: 740px;
line-height: 2em;
text-align: center;
background-color: #009966;
padding: 10px;
}
复制代码


  最后回到样式开头大家会看到这样的样式代码:

* {
margin: 0px;
padding: 0px;
}
复制代码


  这是用了通配符初始化各标签边界和填充,(因为有部分标签默认会有一定的边界,如Form标签)那么接下来就不用对每个标签再加以

这样的控制,这可以在一定程度上简化代码。最终完成全部样式代码是这样的:

<style type="text/css">
<!--
* {
margin: 0px;
padding: 0px;
}
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin: 0px auto;
height: auto;
width: 760px;
border: 1px solid #006633;
}
#header {
height: 100px;
width: 760px;
background-image: url(headPic.gif);
background-repeat: no-repeat;
margin:0px 0px 3px 0px;
}
#nav {
height: 25px;
width: 760px;
font-size: 14px;
list-style-type: none;
}
#nav li {
float:left;
}
#nav li a{
color:#000000;
text-decoration:none;
padding-top:4px;
display:block;
width:97px;
height:22px;
text-align:center;
background-color: #009966;
margin-left:2px;
}
#nav li a:hover{
background-color:#006633;
color:#FFFFFF;
}
#content {
height:auto;
width: 740px;
line-height: 1.5em;
padding: 10px;
}
#content p {
text-indent: 2em;
}
#content h3 {
font-size: 16px;
margin: 10px;
}
#footer {
height: 50px;
width: 740px;
line-height: 2em;
text-align: center;
background-color: #009966;
padding: 10px;
}
-->
</style>
复制代码


结构代码是这样的:

<body>
<div id="header"></div>
<ul id="nav">
<li><a href="#">首 页</a></li>
<li><a href="#">文 章</a></li>
<li><a href="#">相册</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">论 坛</a></li>
<li><a href="#">帮助</a></li>
</ul>
<div id="content">
<h3>前言</h3>
<p>第一段内容</p>
<h3>理解CSS盒子模式</h3>
<p>第二段内容</p>
</div>
<div id="footer">
<p>关于华升 | 广告服务 | 华升招聘 | 客服中心 | Q Q留言 | 网站管理 | 会员登录 | 购物车</p><p>Copyright &copy;2006 - 2008 Tang

Guohui. All Rights Reserved</p>
</div>
</body>
复制代码


  好了,此文到此结束,更多内容,如:CSS中的盒子宽度计算,浏览器兼容问题,XHTML规范化写法等请大家去参考其它资料。如果觉得

此文还可以,看过之后记得跟帖,你的鼓励是我不断出新文章的动力^-^

本文完全为个人原创作品,转摘请注明作者,作者:唐国辉。感谢经典论坛网页标准化专栏斑竹blankzheng指点优化几处

看完本教程后,建议大家再看一下下面的回复,本人在下面的回复中有回答不同网友问及的问题,如果您有在这里提问,

记得过一段时间再回来看我的答复,一般我都会回复的,再次谢谢各位网友支持!

架构中的无缝连接(边框线的对接)


From Evernote:

架构中的无缝连接(边框线的对接)

Clipped from: http://ideafuture.iteye.com/blog/1262851
架构中的无缝连接(边框线的对接)

今天 2011年11月16日,晴……每天还是哪么忙,忙得不可开交,自己一投入工作,就好想忘记一切。
总之就不想想起别的来。今天没什么发生,写了一个又一个页面。虽然大事没有,总算有一点让自己欣慰的事。在架构页面的时候,碰到了一个一下子头大的东东,不过后来还是缓过来了。我想了一个招搞定了,还很完美!没事,晚上回来和大家分享一下。效果是这样的了,有一个选项卡,选项卡的标题叫做查看详情,意味着这个标签可以点击,点击它不是进入另一页面,而是弹出一个DIV层来,显示出里面全部内来。这里肯定要用到JS,幸好,我自己写JS,否则要到网上到处搜JS了,哪将是痛苦的事。这种JS效果我写得太多了。点到这里,显示相应的DIV层,这种简单的控制Display样式,大家都能想得到,不过,我在没有进入这个门之前,却被它挡住了很长一段时间,知道的人说它简单,不知情况的人还是什么和尚摸不着头脑。可能我说得这么多,大家看不到效果,好像等于白说,但是又不能发图片,很让人无奈,其实用图说话,可以让我省打N多文字。算了吧,我还是描述一下,不然,下面的你会觉得不过如些,不值一提。这里的关键问题不是JS实现的问题,难点在于如何让选项卡也即查看详情的边框与DIV层的边框融合在一起,而看不出破绽来,是这样的,查看详情在左边,div层在右边,Div层是一个大的矩形框,选项卡查看详情是一个小的矩形框,而且只有当点击之后才会有边框,并且点击后的右边框线无,而且还要凑巧Div在靠着选项卡的区域,边框线也无,我的意思应该能看懂哦,就是div的左边线只有一个部分是无的,不是全无呢,我也想全无。呵呵……不过没哪么简单。问题描述清楚了,下面就要看实现思路了。
我的实现思路是这样的,选项卡这边我用一个<span>套一个<b>标签,也许大家会问,这里为什么不放a标签,是因为点击它之后不需要跳转页面,用了反而增加了不少麻烦,我考虑之后放的。完整就是<span><b>查看详情</b></span>当然了,它们都飘左才行,这样我才能控制不是?然后就是为它加样式了。<span class="pos_a"><b class="pos_b">查看详情</b></span>算了这样说太慢了,我还是一次写完,大家去研究吧。
css.css;
/*css实现*/
.pos_a{
position:relative;
float:left;
}
.pos_b{
position:absolute;
float:left;
width:70px;
top:0px;
left:0px;/*这里是用控制与dis靠近用的,自己调吧。
border:1px #ccc solid;
border-right:none;/*这里是关键,
}
.dis{
width:350px;
height:250px;
border:1px #ccc solid;
}

html.html;
/*html实现*/
/*开头我就省略了*/
<div class="wrapper">
<span class="pos_a"><b class="pos_b">查看详情</b></span>
<div class="dis">这里是待显示的内容</div>
</div>

代码就这么多了,主要思想就是利浮动层在上面,会挡住下面层的内容,就是靠哪一像素的庶挡,制造效果,当然也可多于两像素,这两像素怎么来,就是控制.pos_b的width就是了,自己慢慢调着试试就行了。
选项卡的JS代码也很简单,我比别人实现起来更省代码。今天不晚了,12点了,我该睡了,有想知道的朋友,请关注我,QQ:550703900

css优先原则


From Evernote:

css优先原则

Clipped from: http://raymondwang1314.iteye.com/blog/1287973
  1. 优先原则一:文本从上到下,后出现的样式优先于前面出现的同一样式  
  2.   
  3. 例:  
  4.   
  5. <style type="text/css">  
  6.   
  7. .def1{background:black;}  
  8.   
  9. .def2{background:yellow; }  
  10.   
  11. </style>  
  12.   
  13. <div class=" def2 def1″>测试1</div>  
  14.   
  15. 结果:所有浏览器均yellow色,注意:与class="" 引号内的顺序无关,只看.def1和.def2在声明时的顺序,.def2后声明的所以权重高。  
  16.   
  17. 优先原则二:id声明(即 # 开头的样式)> class声明(即 . 开头的样式)> 标签声明(即 类似 div 开头)  
  18.   
  19. 以上三种声明处于不同的量级,份量上,div 开头相当于 1克 重,. 开头相当于 1公斤 重,# 开头相当于 1吨 重。  
  20.   
  21. 例:  
  22.   
  23. <style type="text/css">  
  24.   
  25. #bb{background:pink}  
  26.   
  27. .def{background:black;}  
  28.   
  29. div{background:yellow; }  
  30.   
  31. </style>  
  32.   
  33. <div id="bb" class="def">测试2</div>  
  34.   
  35. 结果:所有浏览器均pink色,注意:虽然按优先原则一,后出现的权重高,但那只是在同样重量级下的比较,优先原则二各重量级别就不同了。  
  36.   
  37. 优先原则三:数量取胜。如果同一个样式声明即一个大括号{}由多个 # . 或 div 组成,则权重按出现符号的量级增加  
  38.   
  39. 比如:#bb #tt #dd {background:red} 则重量等于3吨  
  40.   
  41. #bb .tt ul.dd li {background:red} 则重量等于12公斤2克,这么精确的重量,就不需要举例了吧。  
  42.   
  43. 再次说明:优先原则一只适用两个样式声明同样重的情况  
  44.   
  45. 优先原则四:'!important'。相当于无限重量,在之前已经有说明,需要注意:ie下,在同一条样式声明即一个大括号中出现的!important 会被随后出现的同名样式冲洗掉。  
  46.   
  47. <style type="text/css">  
  48.   
  49. .def1{background:yellow !important;background:red;}  
  50.   
  51. .def2{background:green;}  
  52.   
  53. </style>  
  54.   
  55. <div class="def1 def2 ">dd</div>  
  56.   
  57. 结果:ie下,green色,background:yellow !important被后面的background:red冲洗了,而background:red与background:green的较量中,前者败在优先原则一之下。  
  58.   
  59. 优先原则五:近水楼台。<div style="background:black"></div>直接写在元素体内的style优先级别最高!(仅次于!important)用重量来形容,可以定为百万吨量级。  
  60.   
  61. <style type="text/css">  
  62.   
  63. .def1{ background:red;}  
  64.   
  65. </style>  
  66.   
  67. <div class="def1 " style="background:black">dd</div>  
  68.   
  69. 结果:black色。  
  70.   
  71. <style type="text/css">  
  72.   
  73. .def1{ background:red !important;}  
  74.   
  75. </style>  
  76.   
  77. <div class="def1 " style="background:black">dd</div>  
  78.   
  79. 结果:red色。  
  80.   
  81. <style type="text/css">  
  82.   
  83. .def1{ background:red !important;}  
  84.   
  85. </style>  
  86.   
  87. <div class="def1 " style="background:black !important">dd</div>  
  88.   
  89. 结果:black色。  

CSS样式基础


From Evernote:

CSS样式基础

Clipped from: http://sophie627.iteye.com/blog/1288211

一、如何创建 CSS

插入样式表的方法有三种:

1.外部样式表

<head>

<link rel="stylesheet" type="text/css"

href="/YGFMISWebRes/html/component/css/jquery.ygsoft.common.css"/>

</head>

       2. 内部样式表(html,位于 <head> 标签内部)

<head>

<style type="text/css">

                    hr {color: sienna;}

                    p {margin-left: 20px;}

             body {background-image: url("images/back40.gif");}

</style>

</head>

       3. 内联样式(在 HTML 元素内部)

              <p style="color: sienna; margin-left: 20px">

This is a paragraph

</p>

优先级:内联样式 > 内部样式表 > 外部样式表

二、CSS选择器

1. id 选择器

ID属性用于定义一个元素的独特的样式。

DOMid= sidebar的样式定义。

#sidebar {

                     border: 1px dotted #000;

                     padding: 10px;

                     }

2. 类选择器(class

1) class   = center的样式定义。

       .center {text-align: center}

2) 可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class="class1 class2">注:id不可以用此方法。

3. 元素选择器

最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。

如果设置 HTML 的样式,选择器通常将是某个 HTML 元素,比如 ph1tda

td { font-size:14px; width:120px; }
a { text-decoration:none; }

4. 包含选择器(后代选择器)E1 E2 { sRules }

1)        实例:

table td { font-size:14px; }
div.sub a { font-size:14px; }

2) 在后代选择器中,规则左边的选择器一端包括两个或多个用空格分隔的选择器。选择器之间的空格是一种结合符(combinator)。每个空格结合符可以解释为"... ... 找到"、"... 作为 ... 的一部分"、"... 作为 ... 的后代",但是要求必须从右向左读选择器。

可以是ID选择器和类选择器之间相互包含,实用范围非常大。

5. 组选择器  E1 , E2 , E3 { sRules }

1)        实例:

.td1, div a, body { font-size:14px; }
td, div, a { font-size:14px; }

2) 将同样的定义应用于多个选择器,可以将选择器以逗号分隔的方式并为组。

6. 子对象选择器  E1 > E2 { sRules }

1) 实例:

h1 > strong {color:red;}

//这个规则会把第一个 h1 下面的 strong 元素变为红色,但是第二个 strong 不受影响:

<h1>This is <strong>very</strong> important.</h1>

2) 如果不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,使用子元素选择器(Child selector)。

7. 相邻兄弟选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector

例如,如果要增加紧接在 h1 元素后出现的段落的上边距,可以这样写:

h1 + p {margin-top:50px;}

这个选择器读作:"选择紧接在 h1 元素后出现的段落,h1 p 元素拥有共同的父元素"。

8. 属性选择器

对带有指定属性的 HTML 元素设置样式。

[title] { color:red; }

input[type="text"]

{

    background-color:yellow;

}

可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class id 属性。

       [abc^="def"] 选择 abc 属性值以 "def" 开头的所有元素

[abc$="def"] 选择 abc 属性值以 "def" 结尾的所有元素

[abc*="def"] 选择 abc 属性值中包含子串 "def" 的所有元素

注:Internet Explorer 7 (以及更高版本)在规定了 !DOCTYPE 的情况下支持属性选择器。IE6 及更低的版本不支持属性选择器。

三、伪类及伪对象

        css内部本身赋予它一些特性和功能,也就是你不用再class=...id=...你就可以直接拿来使用,当然你也可以改变它的部分属性比如:a:link{color:#ff0000;}

 

1. 伪类

CSS 伪类用于向某些选择器添加特殊的效果。

在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。

a:link {color: #FF0000}         /* 未访问的链接 */

a:visited {color: #00FF00}     /* 已访问的链接 */

a:hover {color: #FF00FF}     /* 鼠标移动到链接上 */

a:active {color: #0000FF}     /* 选定的链接 */

提示:在 CSS 定义中,a:hover 必须被置于 a:link a:visited 之后,才是有效的。

提示:在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。

提示:伪类名称对大小写不敏感。

2. 对象

语法:(伪对象选择符共有4种)

1). Selector:first-letter

2). Selector:first-line

3). Selector:before

4). Selector:after

说明:

1). 设置对象内的第一个字符的样式表属性。此伪对象仅作用于块元素。内联元素要使用该伪对象,必须先设定对象具有块元素的表状。

2). 设置对象内的第一行的样式表属性。此伪对象仅作用于块对象。内联对象要使用该伪对象,必须先设定对象具有块元素的表状。

3). 用来和content属性一起使用,设置在对象前(依据对象树的逻辑结构)发生的内容。

4). 用来和content属性一起使用,设置在对象后(依据对象树的逻辑结构)发生的内容。

注:first-letter:first-line目前所有主流浏览器均支持;:before:afterIE核心浏览器及IE8支持。

 

16个优秀的JavaScript教程和工具推荐