2013-03-28 93 views
4

我在想这是否可能:我有一个id在这种形式的CSS中定义。简单的CSS技巧 - 有可能吗?

#close{ 
    font-size:11px; 
    text-decoration: underline; 
} 

#close:hover{ 
    cursor: pointer; 
} 

但这里我要重复这个ID的定义,只是为了添加hover事件。有没有可能做这样的事情?

#close{ 
    font-size:11px; 
    text-decoration: underline; 
}:hover{cursor: pointer;} 

这将节省一些额外的输入..

回答

6

你不能在CSS中做到这一点,但是你会发现CSS preprocessers像SASSLESS有趣。它们允许你选择旁边,看到这个例子中SASS:

.some-div { 
    #close { 
     font-size:11px; 
     text-decoration: underline; 

     &:hover { 
      cursor: pointer; 
     } 
    } 
} 

这编译为:

.some-div #close { 
    font-size:11px; 
    text-decoration: underline; 
} 
.some-div #close:hover { 
    cursor: pointer; 
} 

注意,这些不被浏览器支持,你的程序编译它们用于输出CSS包含在您的网页中。

+0

与这种属性的CSS将是伟大的!但SASS有点繁琐的导入到页面中。 – doniyor 2013-03-28 05:14:04

+0

@ doniyor在这种情况下没有其他选择。我建议使用文件系统监视器来自动将.scss文件转换为.css文件(查看LiveReload:http://livereload.com/),或者使用IDE编译时的插件保存。有很多可用于Visual Studio的。 – 2013-03-28 05:24:07

+0

我使用Mindscape WebWorkbench for Visual Studio,它效果很好。使CSS写得如此愉快:)为你的IDE寻找插件,我相信有一堆。 – 2013-03-28 05:24:56

2

很好,在这种特殊情况下,你可以只是

#close{ 
    font-size:11px; 
    text-decoration: underline; 
    cursor: pointer; 
} 

随着指针显示只有当你徘徊反正;)

否则,我不相信有任何语法技巧,但你可以使用像SASS

预编译器
+0

是的,我可以这样做,但我的情况只是一个示例,如果你想在''hover''上做更多的事情......我希望,人们正在研究这一点。 :( – doniyor 2013-03-28 05:15:23

+0

我觉得你的痛苦SASS是好的,如果你有大型项目 - 但我经常有小项目不保证它,这将是一个很好的语法,像你提到的^ – Mupps 2013-03-28 05:17:21

+0

关于指针!是的,双关语是打算哈哈 – galdikas 2013-03-28 05:42:15

1

没有人在做这个在W3C CSS工作组,据我可以告诉(*)

有是:

  • 预处理器(见其他答案),
  • 存在的复制粘贴,
  • 也许一个CSS ZenCoding /埃米特插件(从来没有听说过它,虽然它不是需要作为严重的埃米特是HTML ),
  • 也许像宏“去我的CSS文件的最后一行复制了{在其结束和前行,如果他们用逗号结束”
  • 并且有方法一样OOCSSBEM,等等保持嵌套选择的需求下降到1级或2级,这仅仅是假点和不时第二类(几乎没有ID,使用刚刚类)

(*),它几乎没有必要在浏览器imo。在CSS中我可以想到的是类,:matches() (previously known as :-vendor-any())和继承,初始值,“变量”和一个新的all属性(所有这些事情只与他们避免更长的任务相关,它与你的问题非常无关;))