我对 CSS 非常满意。我知道人们经常抱怨 CSS,以及它最初并非旨在像我们现在这样构建网页,它不适合许多任务等等。但我不确定。我每天都在使用它,我感觉它做得非常好。也许我没有那些可以预见存在更完美语言的替代宇宙的奇思妙想。或者其他什么。
正如 Hakim 所说
考虑到 CSS 是用来为文本文档设置样式的,我们今天可以用它做的事情真是令人印象深刻。
— Hakim El Hattab (@hakimel) 2013年1月24日
那么 2013 年对 CSS 意味着什么?Tab Atkins 直接参与 CSS 规范的工作,并 概述了他自己的计划。在我看来,这听起来都是好东西。我特别喜欢专注于 flexbox 和 grid。这些将提供非常强大的布局工具,只要网络是 2D 的,它们就会为我们服务。以及对原生 @extend 的关注,这将是惊人的。
老实说,我比自己更相信 Tab 对 CSS 如何需要演变的直觉,因为他非常参与其中,并且有系统思维。你不能仅仅满足任何作者告诉你的他们想要的所有东西,否则你最终会一团糟。现在,话虽如此,作为一个作者,这里有一些我想让他们加进去的东西。
1. 我希望能够根据元素是否包含另一个特定选择器来选择元素
例如,如果块引用包含段落,则选择它。
blockquote::contains("p") {
/* Not like this, since it's not a pseudo element, but something like it */
}
我觉得这种情况总是出现,而且看起来很奇怪它是不可能的。这与我仍然想要的父选择器类似,并且是一个完整的 麻烦事。
2. 我希望能够根据元素包含的内容来选择元素
内容,字面意思是文本内容,无论它是否在另一个元素中。例如
h1::match-string("coyier") {
/* Not this again, since it's not a pseudo element, but something like it */
}
我觉得如果我想的话,我应该能够定位包含我名字的元素。或者想象一个像 Twitter 这样的网站。如果您愿意,您可以以某种方式设置包含某个特定单词的推文的样式。或者搜索结果。
3. 我想要多个伪元素
就像
.speech-bubble::before(2) {
/* Or ::before::before or something, smart people can decide */
}
正如我们在这里讨论的那样,这是一个好主意。Web Components/Shadow DOM 很酷,但对于像仅仅需要一个额外的无意义元素来完成一些视觉设计细节这样简单的事情来说,它过于复杂了。
4. 我希望能够将某个元素的动画/过渡设置为 height: auto;
就像
.flash-message {
height: 0;
opacity: 0;
transition: all 0.2s ease;
}
.flash-message.loaded {
height: auto; /* nope */
opacity: 1; /* yep */
}
浏览器能够知道一个元素的高度,如果它上面有 height: auto;
(而不是它当前具有的任何内容),对吧?所以算出它并动画到该值。
5. 我想要 Sass 中的一些好东西
按其酷炫程度排序
- @extend – 即此选择器继承此选择器的内容
- @mixin / @include – 即可重用/可更改的代码块
- 嵌套 – 即 .module { background: black; h2 { color: white; } }
我会在循环等将 CSS 扩展到编程领域并且难以阅读的事情上划清界限。我甚至不怎么喜欢变量成为原生属性,尽管我认为现在已经太晚了。如果颜色函数可以通过简单、明显、易读的方式实现,那将是很棒的。
6. 我想要 ::nth-letter、::nth-word 等
::nth-everything,真的。字母、单词、行,以及它们的所有同类选择器。用于像这样的花哨的东西
article.poem p:first-child::nth-line(-n+2) {
font-variant-caps: small-caps;
color: red;
}
我明白这里最大的障碍是语言。例如,在某些语言中,一个字符代表一个完整的单词,这使这些概念变得模糊。在我看来,这些是可以克服的事情。
最大的愿望……
将是所有主要浏览器(包括移动浏览器)都内置了花哨的自动更新功能,可以在没有任何用户干预的情况下升级浏览器。就像 Google Chrome 桌面版一样。五年后,如果我们不再谈论浏览器版本,那将是美好的。我们只用名称来称呼它们,因为显然所有使用它们的人都在使用最新版本。
我同意。我知道有些人会喜欢
确实可能是一个很酷的功能。
我最大的愿望是前景支持,它的功能就像背景一样,但它会将内容放置在元素内容的上方而不是下方。
另外,我希望 pointer-events:none 能在所有浏览器中都能正常工作。 :)
哦哦哦。还有一个。
如果您将
box-shadow
应用于img
,它应该将其呈现到图像的顶部。它现在呈现的位置完全没用。我会非常喜欢这个,非常喜欢 :)
是的!box-shadow: inset… 请应用于图像。
我也想要 inset text-shadows。
这看起来像是如此简单的修复,但它会带来很大的帮助。我很乐意看到 box-shadow inset 简单地应用于图像。此外,text shadow: inset 有什么好处吗?我知道它可能需要大量资源,但仍然很有用。
是的,这个很重要。我非常希望图像上有 inset shadows!
天啊,那将非常有用! :)
我绝对同意最后一个愿望,如果那个行不通,我们能否为 IE 6 和 7 创建一个更新,让使用它们的电脑爆炸?或者至少将自身回收成有用的东西……
+1 for element::match-string
我一直希望 CSS 能够更专注于多点触控交互。
例如
.menu-item:double-tap
.gallery:swipe
.map:pinch
等等。我的意思是,iPhone 从 2007 年就开始流行了。CSS 也该赶上潮流了。
无论如何,我们都应该以触控优先的方式进行设计。
IE10 已经“有点”类似的功能了。它被称为 touch-action(目前使用前缀 -ms-)
pinch-zoom
double-tap-zoom
虽然这并不是你完全想要的,但在某些情况下可以帮助你。
我不知道……这些听起来像是面向事件的。更像是 JavaScript 的东西,你觉得呢?
我同意 Nile 的观点。CSS 最接近这个的是某些元素的状态(选中、访问、悬停),而且也应该仅限于此。将事件留给 JavaScript 处理。
我希望
border-bevel: 5px;
可以对盒子角进行直线切割,有点傻,但有时在盒子角制作斜角确实很麻烦。它的使用方法与border-radius: 5px 3px 5px 3px;
完全相同,但用于直线切割。我看到网络上到处都是 Windows 95 主题……我认为让开发人员更难使用斜角是个好主意。;]
这将在 CSS 背景和边框 4 中实现 http://dev.w3.org/csswg/css4-background/#border-corner-shape
对于前两个,你可以将语法更改为
使用单冒号,因为它是一个伪选择器,而不是伪元素。话虽如此,我不明白第一个与父选择器有什么区别?
不错的帖子!
你的所有 CSS 愿望都完全可以理解;我们都将从中受益。不过,祝你在最后一个愿望上好运!
也许他们应该将 JavaScript 和 CSS 合并起来,以便能够在 JavaScript 中包含 CSS,就像你在 C++ 中包含内联汇编一样。
$(document).ready(function(){
_css {
page.background-color: black;
page.color: green;
}
return false;
});
});
function setBackgroundColor(elm,clr1)
{
_css {
elm.background-color: black;
elm.color: green;
}
return false;
}
并在 HTML 中使用类似 ltr(从左到右):onltrswipe=’setBackgroundColor(“home”,”white”);’ 的内容
并在 HTML 中使用类似 rtl(从右到左):onrtlswipe=’setBackgroundColor(“home”,”black”);’ 的内容
只是一个想法。即使它不是一个很好的想法。
实际上,这里提出的大部分内容都可以使用 CSS 最好的伙伴 jQ 轻松实现,如果你喜欢低效的话,也可以使用纯 JS;P
我认为这个想法是希望有一种不依赖 JS 的方法来创建这些函数,因为 JS 在性能较弱的设备上可能会占用大量 CPU,并且还依赖于 DOM 后更改,这些更改不仅可能不被机器人捕获,而且还会对用户体验产生负面影响,因为他们必须等待 UI 加载才能与页面交互,这在不同浏览器之间可能会有所不同,尤其是在性能方面。
更高的“人类用户”PLT 意味着更低的转化率,这意味着更少的奖金!;]
这实际上似乎是一个糟糕的想法……脚本和样式之间需要有分离。另外,请不要为此使用 jQuery。
动画化伪元素。
这实际上现在已经可以工作了。Firefox 已经有一段时间了,WebKit 最近也添加了支持。
Chris 在这里更详细地解释了它 https://css-tricks.cn/pseudo-element-animationstransitions-bug-fixed-in-webkit/
对于你的第一个愿望,请查看 CSS 选择器级别 4 中的主题选择器
http://dev.w3.org/csswg/selectors4/#subject
基本上,你将选择器一直写到你要识别的子元素,然后返回并在其中添加感叹号来告诉浏览器你实际上对哪个元素感兴趣。
你的示例
变为(假设感叹号紧跟在主题之后)
打算链接到相同的内容。只是在阅读评论以避免重复发布。好东西
根据两天前我读到的一篇关于父选择器的文章,我本来想说我相信
blockquote
和!
之间没有空格(因此它将是blockquote! p
),但 Ron 给出的链接表明它应该是!blockquote p
。现在我可能更困惑了。哦,等等;在规范中有一条注释说但我认为很多人期望它更像:
blockquote < p
,但也许这种方法也存在问题,因为这种方法可能无法始终非常清楚地表明p
左侧列出的哪个元素是要应用样式的元素。@Christian:但这与父选择器不同。使用
<
的示例意味着 p 必须是 blockquote 的直接子元素。主题选择器应该允许更多选项,包括同级选择器,例如h2! + p
实际上,如果你有
::contains()
,你就可以自动拥有父选择器不过,你需要有一种方法来指定
::contains
搜索的深度。我记得曾经与某人顺便讨论过这个话题(找到了:实际上是 Tab),并想知道是否应该将多个元素链接(即列表)或映射(即树结构)。
……Tab 的回复 显示了更多对话
Div 需要一个垂直居中属性。现在,对于响应式设计来说,这比以往任何时候都更加需要,唯一的解决方法是欺骗 div 使其表现得像一个表格单元格。
flex-box。
ZOMG> 这是我几个月前写下的愿望清单。
父选择器(显而易见)
父元素媒体查询:
#myElement (min-width: 40em) { /* 执行特殊操作 */ }
一个
:header
选择器(如 jQuery)。对于样式化小部件很有用,因为你不知道标题级别将是什么。正则表达式
input[type="email|text|password|tel|etc"]
或input[type="all"]
或input[type="~text"]
选择器是的……谢谢 Dave……正则表达式绝对应该包含在内!
这总结得很好!
是的,Dave!input[“看起来像文本或因为类型不受支持而回退到文本”]
老实说,我想要简单的变量——例如
$main=#FEFEFE;
body {
background-color: $main;
}
因此,如果你有一个颜色主题,你可以轻松地更改它,而无需查找每个实例并更改它。
那将非常棒。
我已经使用 PHP 以这种方式渲染 CSS 表格很长时间了,方法是在链接到表格时使用 .php 而不是 .css。
虽然这非常有效,但会给服务器带来压力(我想,如果你是一个热门网站,我不知道)。
只要用户的电脑最终不会处理大量的变量,它就可以正常工作——尽管作为网站管理员,我宁愿我的服务器承担繁重的工作,而不是用户。
顺便说一下,这已经在规范中了
@Remy Bach 声明变量的方式真是太糟糕了,Ugh。
我也是这么觉得!我更喜欢SASS的声明方式,但据我所知,他们意识到了
$varName
语法,但出于某种原因(我忘了具体原因)没有使用它。说实话,我不明白CSS变量有什么意义。无论如何我都会使用预处理器来处理它们,以提高性能并在旧版浏览器中使其工作。
@Eric – 不要每次都这样做,只做一次,并将输出保存为常规的css文件。只有在你更改某些内容时才重新执行。
我只想要
background-opacity
(用于图像),但不要现在正在使用的伪元素上的hack。+1
我希望他们添加一个选择器,允许选择所选元素的前一个元素。类似于:p.first + p.second,但反过来。也许是p.second – p.first,然后设置p.first的样式
你们觉得如何使用一个选择器,只要另一个元素存在于整个DOM中,就可以选择一个元素?例如
(.mycheckbox:checked) .lightbox{ display: block; }
我不确定这是否是个好主意,但我们可以用它节省很多JavaScript代码。
对于下拉菜单、子导航等,+选择器就足够了。但确实有一些有趣的用途;)
我也真的很想要2/内容选择器(如果包含正则表达式会更好);因为在我的网站上,在所有包含此类内容的地方都添加一些“ok”或“cancel”类对我来说看起来很蠢(更重要的是,当它是用户生成内容时)
width: rest;
+1 支持text-shadow inset。
过滤器(-webkit-filter:)怎么样?乘法、屏幕、叠加、颜色减淡等。
另外,更多用于过渡的属性!
是的,如果他们像Photoshop的混合选项(内/外发光、图案叠加、描边等)一样有过滤器,那也会很酷,但我相信未来的浏览器将足够强大以渲染这些类型的操作。
::wrapper 伪选择器
我的选择不是什么疯狂或特殊的东西,而是一个我偶尔会遇到的问题:修复
display
属性的“精神分裂症”本质。它既用于布局目的(如inline-block
),也用于显示/隐藏内容,而这两个目的在CSS中经常发生冲突。所以,也许可以为隐藏/显示元素添加一个新属性?如果我可以变得深奥一点,我仍然希望拥有自适应容器/选择器查询功能。
Visibility 有“hidden”和“visible”,可以用来隐藏和显示内容,不过我认为它与display的区别在于屏幕阅读器仍然会读取“visibility: hidden”的内容,但不会读取“display: none”,而且“visibility: hidden”会保持其在页面上的布局,而不是折叠。
某种方法可以在使用display:inline-block时,不自动显示代码中的空格,也不需要使用font-size:0。
展望我们可能在CSS中获得什么总是很有趣的。我认为其中很多东西根本不属于CSS,因为它们会占用大量处理资源,而CSS(就其本身而言)应该非常快。
进入循环、逻辑、正则表达式或任何必须扫描标记内内容的东西。当然,可以通过更多类型的缓存或其他方式来解决这些问题,但是。KISS原则。
我个人非常喜欢让SASS(或任何预处理)来处理很多逻辑方面的事情,但谁知道未来会发生什么。
我真的很希望有“Is parent of”选择器。Level 4 选择器似乎包含了这个(http://www.w3.org/TR/2011/WD-selectors4-20110929/#overview),但如果我们能加快这个速度,我将成为一个快乐的开发者。
你好,Chris。
虽然我同意我不希望CSS变成一门编程语言,但我认为关于CSS变量规范存在一些误解。就目前而言,“变量”更像是自定义属性(事实上,规范的当前草案分别在使用和声明中使用了“级联变量”和“自定义属性”这两个术语)。它们定义和使用的方式非常符合CSS风格,虽然它们可以替代一些预处理器变量,但不能作为直接替换。我个人认为CSS变量(无论如何命名!)都很好,但我们标记编写者需要一些时间来弄清楚一些最佳实践。(我看到了未来CSS Tricks的一篇文章,名为“何时使用CSS变量以及何时使用SASS变量”!)
@Brad,同样适用:CSS仍然会是一种标记语言,不需要比以前更多的处理;事实上,如果其中一些增强功能进入规范,那么总的处理量将会减少,因为一些现有的自定义JavaScript将变得不必要(例如,参见Tab关于动画的观点,或Chris关于
height: auto;
的评论)。不错的列表。我也希望看到更多伪元素的能力。
我觉得第2点属于“将内容与表现形式混合”的范畴。
我的愿望很傻,但我希望有
clear: self;
或一个浮动感知的东西,这样我们就不再需要clearfix或任何其他hack了。我绝对同意你的观点。不得不在元素之间放置
<div class="clear"></div>
真的很令人沮丧!这将非常棒,目前最好的解决方案是设置一个这样的类
.clear {
content: “.”;
clear: both;
visibility: hidden;
height: 0;
width: 0;
line-height: 0;
}
只需将此类添加到需要清除的元素即可,但是正如你所说,这是一种变通方法。它在旧版(即IE)浏览器中无法正常工作。
应该是.clear:after { … },抱歉!
虽然这“很好”,但无论如何你都需要一些polyfill hack来以旧的方式执行此操作,因为浮动本身就是针对IE 7/8的hack,而这些浏览器肯定不支持任何新的浮动友好特性。
我希望能够做到这一点
而不是
嵌套可以解决这个问题
Level 4 的
:matches()
选择器也可以解决这个问题。我相信他们在CSS Level 4中使用“match”来解决你的第2个愿望。
我昨天刚看到这个。他们在示例中使用了能够一次性定位链接的所有状态(普通、悬停、焦点、活动)。
我希望所有浏览器都能正确显示网站
并且IE已经停止工作了(对所有人)
绝对同意“它包含的内容”,尤其是你的最后一个愿望!
到处都在分享很棒的想法。感谢你将它们整合在一起,以便它们有机会参与未来的规范。
这里有来自其他人的许多绝妙想法。我的愿望是有一刻黄金时刻,每个浏览器都有一个特殊的版本,在那个时间点,它们都同意以相同的方式渲染所有 CSS。Webkit、盒模型、输入渲染,每个浏览器都以相同的方式渲染……
我希望在 ul 和 li 上有一个继承取消功能。
文本描边! :)
你可以使用 text-shadow 来实现。
关于多个伪元素,“CSS3 生成和替换内容模块”的规范已经定义了这一点,但据我所知,没有浏览器支持它
http://www.w3.org/TR/css3-content/#inserting0
1 在 CSS 4 级 中!
!blockquote p {}
3 Adobe 提出了一个很棒的 关于 n 个伪元素的提案。
4 有一些讨论 关于将 Sass 功能(如扩展)引入 CSS。
克里斯,
我回去阅读了你关于父选择器的文章,注意到它来自 2010 年,所以我想知道你是否看到了这个
http://www.w3.org/TR/2011/WD-selectors4-20110929/#subject
对我来说,使用“$”确定选择器的主题使其比仅仅是父选择器更强大。
你基本上可以拥有一个强大的选择器,例如“包含一个段落,该段落包含一个左对齐的图像的 div”,如下所示
$div p img[align=left] { }
或者如果你想要 p 标签
div $p img[align=left] { }
我有点喜欢它,但我不确定我对 $ 的感觉如何,因为它看起来就像一个变量。
不错.
我之前没见过。非常好。
……另外,你正在查看旧的草稿。当前草稿 使用
!
作为主题标记。还有形状。我知道现在已经可以创建三角形和正方形了,但这很不自然且不可靠。类似这样的东西会很好。
div
{
shape:triangle;
width:100px;
height:100px;
color:red;
}
等边、直角、等腰、顶点在上、顶点在下、顶点在左或右???
对于 #1,请参阅 选择器 4 中的主题指示符。
对于 #2,会很有用,但很难使其快速。我们将为不连续运行的选择器引擎(如 document.querySelector())拆分出一个“批处理处理器选择器”规范,其中一些“对常规选择器来说太慢”的东西在那里会很好。
对于 #3,我也是。我们最近为此制定了一个规范,但浏览器并没有太多动力。
对于 #4,该死的,是的。
对于 #5,它在我的今年的清单上。
对于 #6,伪元素系列太难了。 ;_; 我知道它们在某些情况下有多么有用,但事实上它们使盒子树不再是树(或者更确切地说,我们必须扭曲它们的定义以将盒子树保留为树)使得从规范/实现方面处理它们非常令人恼火。
我认为父选择器可能非常有用。
我知道我真的很想拥有 height:auto 动画,并且非常赞成 :nth-everything!
我认为用于滚动位置的媒体查询选择器将非常有用。它对于现在流行的视差效果很有用,但更实际地用于 store.apple.com 等情况,其中一个元素(如您的订单小计和结账链接)在您滚动到它通常所在位置下方时变为
position:fixed
。div#priceBox {
position: absolute;
top: 200px;
}
@media and min-scroll-top: 200px {
div#priceBox {
position: fixed;
}
}
它对于具有溢出滚动的块级元素也很有用。
div#contentContainer:scrollTop(>100px) { }
为什么之前没有人想到这个!?
+1
这种 position fixed 的应用也可以通过当前提议的
position: sticky;
来完成。它目前仅在 WebKit 中有效,但希望很快就会进入其他浏览器。+1 支持能够动画“height: auto;”。
当我阅读有关 flexbox 的焦点的文章时,我非常高兴。我现在正在为一个内联网应用程序(需要 Google Chrome)使用 flexbox(最新版本),这真是太棒了。我再也不想使用浮动元素了 :) :( 浮动元素从来都不应该像现在这样使用。还有其他人编写内联网应用程序吗?我感觉大多数人都会愿意割掉自己的左耳垂来做这件事,因为你可以指定使用什么浏览器并做任何你想做的事情(Dart,有人吗?)。
文本渐变,这样我就可以停止告诉设计师修改他们的模型了。:P
我同意那会很有趣,但你应该告诉你的设计师上几节 CSS 课,这样他们就知道在不让你回来告诉他们修改的情况下能做什么!=)
我需要一个内边距圆角。
我不得不赞同你在父选择器上的观点——这对我也出现了很多次。它就像子选择器的反向操作。
在你一开始说你对 CSS 感到满意时,请记住你有很多经验。大多数人无法像你这样编织 CSS 魔法,而且不幸的是,你需要成为一个 CSS 天才才能在没有任何挫败感的情况下操作它。
::xpath() 选择器将非常有用,并带来许多所需的功能,例如“::match-string”
这很好……
非常感谢,非常棒的编码插件
:parent 将在我的列表中排名很高,以及 :parents,几乎就像 jQuery 选择器。
:parents(“p”)::contains(“span”)
但那也是一个问题,你在 CSS 和可以用 jQuery 做的事情之间在哪里划线?
这里没有混淆。选择一个元素来设置其样式是 CSS 的事情。选择一个元素对其执行操作是 JavaScript/jQuery 的事情。
是的,继承会很棒(或者多重继承),这样你就可以从其他类继承样式并分配一个新的类名。 :)
父选择器将在 CSS4 中出现
UL! LI:hover{
background: #fff;
}
在这种情况下,CSS 针对的是 UL。
参考:http://www.w3.org/TR/selectors4/#subject
我认为我还应该指出,你可以使用 Hitch 做各种未来的 CSS 事情:http://www.hitchjs.com/
多个伪元素和动画到 height:auto 将非常棒。
既然我们都在许愿,我希望看到一个针对几个 css 声明的“current”值的实现。类似这样
.btn { box-shadow:1px 1px 5px rgba(0, 0, 0, .5); }
.btn.active { box-shadow:current, inset 2px 2px 8px rgba(200, 0, 0, .6); }
基本上它可以用于任何值。一些其他的例子
.awesome-input { margin:40px 10px 5px 10px; padding:10px 5px 4px 5px; }
.awesome-input:focus { margin:current 5px current 20px; padding:current 10px 8px 10px; }
.label { text-shadow:1px 1px 1px #000, -1px -1px 1px #eee; }
.label.error { text-shadow:current, current, 0 0 10px #f00; }
当然,对于 margin/padding 等,你可以为每一侧使用该属性,但如果我们始终可以使用简写形式,那就太好了。
对于
text-shadow、box-shadow、background 等
——任何接受多个值的属性,这将尤其有用。+1
添加背景图像
.fading { background-image:linear-gradient(to bottom, rgba(0, 0, 0, 0), #fff); }
.fading.logo { background-image:current, url(logo.jpg); }
更改颜色但不更改透明度
.light-text { color:rgba(128, 128, 128, .5); }
.light-text.color2 { color:rgba(255, 0, 0, current); }
我认为这从未被提及过,但类似于
shape:hexagon
。当然,这可以扩展到其他形状,或者甚至可以定义自己的形状,例如shape:polygon();
,当然你可以在其中填写坐标。使用现在的普通 css 做这样的事情会非常困难
我希望能够根据同一选择器中的另一个值设置值。一个很好的例子是根据转换容器的直接子元素上的
translateZ()
设置blur()
。这将模拟景深,而无需进行大量基于类的障眼法。“[…]所有主要浏览器,包括移动浏览器,都内置了花哨的自动更新功能,无需任何用户干预即可升级浏览器”
阿门!
我希望有一些伪元素允许为新的 HTML5 表单字段设置样式,以便人们可以利用原生 UI 和验证(我在这里写过这方面的内容http://www.brucelawson.co.uk/2013/on-the-styling-of-forms/
而且,从我的 2006 年愿望清单开始,有一种方法可以正确地为歌曲歌词和诗歌(遍布网络)以及代码示例设置样式,以便您可以区分作者的换行符和浏览器由于窄列/大字体大小而插入的换行符:http://www.brucelawson.co.uk/2005/what-i-want-from-css-3/
“我希望有一部分 Sass 的东西”…
我希望不会… 让 CSS 和预处理器分开。我喜欢我的 LESS,但我喜欢知道它是一种编写良好 CSS 的不同方法。
我很享受阅读你的愿望清单,特别是关于浏览器版本的评论。
实际上,可以通过一个非常巧妙的技巧过渡到 height: auto,查看 Lea Verou 的这个 jsfiddle
http://jsfiddle.net/leaverou/zwvNY/
只需动画化 max-height 而不是 height!
有时这有效,但你无法很好地控制时间。这是我在另一个博客上关于 max-height 技术的解释:http://www.thenerdary.net/post/20924702599/transitioning-max-height#comment-498618550
这种方法有点用,但它实际上仍然是在将下拉效果向下动画到 999px。这就是为什么在那个 jsfiddle 中效果比 1 秒快得多的原因。如果你实际测量下拉菜单的高度(200px)并将其用作 max-height 值,那么动画确实需要 1 秒。但当然,这样你就失去了让菜单长度超过 200px 的能力。
对于我的菜单,我测量了我认为可能存在的最长的菜单,假设不会再添加/更改链接名称,并将该值用作 max-height。
我真的很希望这能得到实现,我相信这只是一个疏忽而不是计划好的。
坦率地说,我认为除了#5 之外,其他所有内容都是锦上添花,因为还有更重要、更有用的问题需要解决。我的意思是高级布局技术,就像你在引言中提到的那样。2013 年,要可靠地进行非平凡的 CSS 布局仍然如此困难或工作量如此之大,这让我感到困惑。
关于:最大的愿望…
如果软件开发人员没有发明需要两倍于先前版本设备内存的酷炫新功能,这实际上只有意义。操作系统、软件(如浏览器)是其运行的硬件的奴隶。但它们应该如此吗?
很棒的网站,仍然支持它和创建者。
只是一些问题
为什么 CSS-Tricks 页面没有像 Facebook 或 Twitter 这样的按钮?
另外,为什么我必须一直滚动到底部才能写评论?
我认为类似这样的东西也会很好
.main-column {
height: auto;
min-height: 300px;
}
.seconday-column {
height: $(".main-column").height;
}
我希望能够根据其他元素的值设置某些元素的属性。
在第 4 级选择器中,是否已经能够通过在 rhw 中使用
!
来引用包含子元素的父元素?是的,它已经在开发中了。关于感叹号应该放在哪里有一些争论
http://dev.w3.org/csswg/selectors4/#subject
一些非常基本的东西
.class:nth-class(2)
以及一些简单的方法来垂直和水平居中块级元素,无需任何技巧。
嗨,Chris,你在第 6 点中所说的听起来不错;但我只是想知道哪种方法更费力?按照你建议的方式应用样式,还是将一种样式与可以反复添加的 span 关联?
干杯
更直观地处理浮动
我希望有collapse:normal;和collapse:none;,以便能够以更直观的方式处理浮动。有一些解决方法,但如果此功能是原生的,则 CSS 会更好。
当包含任意数量浮动元素的父元素不会像非浮动元素那样完全包围这些元素时,就会发生折叠。请参阅 Noah Stokes 在 A List Apart 上的文章CSS 浮动 101。问题在于,由于浮动元素最初是在普通流中计算的,然后被移除,因此父元素不会在其边界内考虑浮动子元素,因此表现得好像它根本不存在一样。
祝您有美好的一天!
浏览器。我真的很希望浏览器能够以更用户友好(开发人员友好)的方式赶上支持 CSS3/HTML5 的当前规范。此外,旧浏览器(至少是 IE6-8)不应该像现在这样对开发网站产生如此大的影响。
我希望如果对某个元素应用了特定的 CSS 规则,则可以选择该元素。
例如,如果使用的字体是“Arial”,我希望该元素的颜色为绿色
CSS 样式选择器将毫无意义,因为它与直接编写两种样式一样简单或更容易,并且它将是一个非常慢的选择器,因为它将依赖于所有其他样式首先运行。
也许你是对的,但我相信有很多情况下我需要类似的东西。例如,我需要为所有加粗的元素设置样式……对使元素加粗的所有选择器运行并插入规则既乏味又耗时,因为你的项目越来越大。
无论如何,这是一个愿望清单 :) 你想要的任何东西都可以毫不羞愧地说出来:P
的确如此。
“我希望能够将某个元素的 `height: auto;` 属性进行动画/过渡。”
++ 10
我希望有一个用于纵向和横向图像的伪类选择器,例如 `img:portrait {} img:landscape {}`。因此,伪类选择器应该自动检测图像宽度或高度哪个更长或更短,反之亦然。
我非常喜欢这个!
我希望看到 `width` 和 `height` 属性的值,可以保持图像在另一个属性方面的纵横比。
假设我们有一个图像,宽度为 300px,高度为 200px
哈!不错的愿望清单。目前还没有想到任何。CSS3 非常棒,但有时在项目中工作时会感到沮丧,因为无法用简单的 CSS 实现我想要的东西。
还有一个我想说一下,在过去几周里我一直在思考它。我希望有一个 `position-anchor` 属性。
示例
将为 `position: absolute;` 布局设置锚点到盒模型的中心顶部。因此,如果您现在设置
该元素将位于父元素正下方中间,而不管实际宽度如何。这样可以节省您不知道元素实际大小的情况下设置 `margin-left` 的部分。
哈哈,我不确定 #2。
<假设场景>
“考克斯先生,您在上次登录 Facebook 并同意其 EULA 条款时,以电子方式签署了此协议,声明您将在法律上将所有权力和权限转让给我们。”
“什么?!什么时候?”
Facebook 法律文件/CSS 样式表
</假设场景>
这将类似于诱捕,因为合同创建者显然阻止了相关句子的可见性,因此这不像合同签署者忘记滚动或点击“查看更多”链接或任何东西(将其视为与合同创建者用柠檬汁在单页合同的后半部分写一半合同一样荒谬)。
哎呀,我应该看看回复预览,我的“hypothetical_response”标签被去掉了 :P
我真的很想添加多个伪元素(甚至在我与 #3 链接的讨论中也贡献了自己的想法)。
我想问题归结于每个伪元素是否可以通过数字或某种方式使用自定义名称进行选择。
添加这个也有很多意义,因为它似乎有很多方法可以为旧版浏览器优雅地降级。
我希望是这样的
这将把 #wrapper 中的所有内容居中。
很棒的愿望清单,一年后,越来越近了!自从现在是 2014 年以来,又增加了一些,不知道它们是否在评论中提到过:) 也许你们对其中一些有答案?发布愿望吧!
1) 在不使用其父元素的 `display: table` 技巧、非 Flex 旧版站点等情况下垂直居中元素。
2) 允许 CSS 动画与 `display: none;` 切换一起使用,以便简单的菜单可以淡入/淡出等。
3) 在没有伪类选择器的情况下将 `content: 'Test';` 放置在某些位置的方法,例如,在某些按钮上不起作用。
4) 类似于您之前考虑的其他目标,使文档位置 URL 可通过 `::contains` 访问,以减少 JS 闪烁或加载犹豫以调用主题层。目前每个人都依赖于 JS 或服务器端来实现这一点。这是一个 SaaS 世界,服务器端越来越难以获得。
5) 链接对象的高度和宽度 - 也是抽象的,但在列表中,元素可能高度各不相同。目前也依赖于 JS,但 Flex + `@extend` 有潜力……也许。或者也许 Flex 已经可以做到这一点,而我们遗漏了一些东西!
6) 这个想法非常超前,但在即将到来的动画和 3D 世界中,必须实现类似于 `z-index` 的东西。人们已经在掌握 2D 层来制作简单的游戏动画等。重力或 `g-index` 将成为未来令人惊叹动画的解决方案。当然,`x-index` 和 `y-index` 仍然非常有用 :)