Html CSS中定位的逻辑/哲学是什么?

Html CSS中定位的逻辑/哲学是什么?,html,css,Html,Css,我不是一名网络程序员,但我们都发现自己在某个时候需要处理html、css和javascript。每次我这么做的时候,我都会发现自己对CSS恨之入骨。这几乎完全与定位有关。许多我认为应该简单明了的事情,结果却变得非常困难,甚至(似乎)不可能 在用户的浏览器/界面中取一些东西。我最近想做一个“即将到来的”临时飞溅页面(陈词滥调,我知道),我想要一小段文本或图像在用户浏览器的中间着陆。从概念上讲,这是再简单不过的了,但要在CSS中真正实现这一点,你必须做各种各样的技巧。我不是问你如何做到这一点。有几个

我不是一名网络程序员,但我们都发现自己在某个时候需要处理html、css和javascript。每次我这么做的时候,我都会发现自己对CSS恨之入骨。这几乎完全与定位有关。许多我认为应该简单明了的事情,结果却变得非常困难,甚至(似乎)不可能

在用户的浏览器/界面中取一些东西。我最近想做一个“即将到来的”临时飞溅页面(陈词滥调,我知道),我想要一小段文本或图像在用户浏览器的中间着陆。从概念上讲,这是再简单不过的了,但要在CSS中真正实现这一点,你必须做各种各样的技巧。我不是问你如何做到这一点。有几个教程/示例,包括以下两个优秀的教程/示例:

我想理解的是,为什么要实现如此基本的目标如此复杂?为什么我不能做一个跨越浏览器的高度和宽度的div(或者别的什么),并在中间排列一些东西?为什么您必须提出像Bootstrap这样的完整框架(在我看来,Bootstrap仍然是不完整的和有漏洞的)来做应该成为实现理念一部分的事情

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

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

这方面还有其他例子:

  • 将文本垂直对齐到页面的中心或底部相对比较困难,而水平面上的中心对齐是一种简单的
    text align='center'
  • 表是用
    表行标记定义的,而不是
    表列标记
  • 有没有试过把
    ,特别是包在其他div中的一个,做成页面的全高(不是屏幕)?这并不像你想象的那么容易
  • 高度为100%的元素不会自动与浏览器的高度相同,而是与内容的高度相同
    由于需要保持向后兼容性,浏览器继续使用基于从左到右、从上到下渲染的渲染引擎。HTML的替代品似乎不太可能在不久的将来席卷整个网络,因此在可预见的未来,我们很可能会坚持使用这种模式。

    您是否在寻找类似的东西???因为HTML和正文元素不会覆盖浏览器窗口的整个高度,而只覆盖内容。因此,如果你只有一行,body元素将只有一行高(加上填充和边距),而我可以与你的观点的有效性联系起来,这实际上不是一个问题。你似乎特别要求对CSS主题发表基于意见的含糊不清的言论。我不确定你是否应该这样问。我一直认为这是“我的人在那里。我必须知道他们要去哪里,这样我才能领导他们”。顺便说一句,这不是一个坏策略,但它意味着你现在不能做你想做的事情,但总有一天会变得容易。对于你的问题,有一个解决方案。接下来:@Joum,我完全同意。然而,我认为它不适合任何其他StackExchange,我也不知道还有什么地方可以问。我不喜欢去Reddit这样的地方,因为我在那里认真、有用的回答命中率很低。你忘了保存你的小提琴。或者,您粘贴了错误的链接。@BoltClock谢谢,已更新。而且,
    高度:100%
    不是“自动”“内容高度”。它应该是它父母的100%高度。问题是父级没有定义的高度,因此它计算为
    高度:auto
    ,这会导致它收缩以适应其内容。@BoltClock My point,这是为水平流设计的HTML的另一个例子:它甚至不假设你有整个浏览器窗口的高度,除非你做了一堆骇人听闻的事情。不是说这很难,只是不直观。更积极的一点是,像flexbox这样的CSS格式化系统可能会为我们提供更先进的定位方案。但这些技术要进入主流还需要很长时间。