2

我不是网络程序员,但我们都发现自己有时需要搞乱 html、css 和 javascript。每次我这样做时,我都会发现自己讨厌 CSS 的胆量。这几乎完全与定位有关。许多我认为应该简单明了的事情结果变得非常困难,甚至(似乎)不可能。

以用户浏览器/界面为中心。我最近想做一个“即将推出……”临时启动页面(我知道这是陈词滥调),并且我希望一小段文本或图像能够直接放在用户浏览器的中间。从概念上讲,这再简单不过了,但要在 CSS 中真正实现这一点,您必须使用各种技巧。我不是在问你是如何做到这一点的。有几个教程/示例,包括这两个优秀的:

http://css-tricks.com/centering-in-the-unknown/

http://www.dynamicsitesolutions.com/css/center-page-content-horizo​​ntally-and-vertically/

我想了解的是,为什么要实现如此基本的东西如此复杂?为什么我不能只制作一个跨越浏览器高度和宽度的 div(或其他任何东西),并在其中对齐一些东西?为什么你必须想出像 Bootstrap 这样的整个框架(在我看来,它仍然不完整和 hacky)来做应该成为实现理念的一部分的事情?

提出 CSS 标准的人比我聪明得多,这一定是有原因的。他们如何实施背后的逻辑或哲学是什么?我错过了什么?我想理解,所以至少下次我尝试实现某些东西时,我不会自欺欺人地认为“这很容易”,而我认为这是有原因的。

4

1 回答 1

2

因为 HTML/CSS 受到其根源的限制:ltr 水平流

当我们第一次开始制作网站时,HTML 被设计为一种使内容流动的简单方法,就像在杂志或书籍中一样。也许它会有图像或嵌入的音频,但当时无法预见我们会有数百万行代码的网站。HTML 在设计时考虑了水平流,而不是垂直流

还有其他例子:

  1. 将文本垂直对齐到页面的中心或底部是比较困难的,这需要很多不直观的理解,而水平面上的中心对齐很简单text-align='center';
  2. 表格是用<tr>表格行标签定义的,而不是<tc>表格列标签。
  3. 曾经尝试过制作一个<DIV>,尤其是包裹在其他 div 中的一个,整个页面的高度(不是屏幕)?这并不像你想象的那么容易。
  4. 元素height:100%的高度不会自动与浏览器相同,只有内容的高度。请参阅此示例

由于需要保持向后兼容性,浏览器继续使用基于从左到右、从上到下渲染的渲染引擎。HTML 的替代品似乎不太可能很快席卷网络,因此在可预见的未来,我们可能会坚持这种范式。

于 2013-08-27T08:26:08.910 回答