【发布时间】:2018-01-23 17:53:54
【问题描述】:
我知道这可以通过两种方式实现:Flexbox 布局和 CSS 表格布局。但是,我不能使用 Flexbox,因为我需要支持旧版浏览器。 据我所知,CSS 表格不适用于我的情况。
<header> 标签内有三个块级元素。这是它们在我的 HTML 源文件中出现的顺序:
-
<h1>标题 - 使用
<img>标签创建的徽标 -
<div>,作用类似于按钮
这是我希望它们呈现的顺序:
- 徽标优先
-
<h1>下一个 -
<div>最后一个
注意HTML源文件中第1个和第2个元素的顺序需要在页面渲染时交换。
另外,我希望三个人都平躺。这就是为什么我不能使用 table-header 和 table-footer(据我所知,它们只能在垂直对齐的情况下使用)。
由于 SEO 问题,我无法更改 HTML 源文件中的顺序。不使用Flexbox有没有其他方法可以达到我想要的效果?
我更喜欢非 JavaScript 解决方案,但如果 JS 解决方案可以做到而不损害 SEO,我会接受。
编辑:这是我的 sn-p HTML:
<header>
<h1>Title
<img src="logo.png" alt="Logo">
<div id="menu-button"></div>
</header>
我尝试支持的旧版浏览器是:IE8-10。我知道 Microsoft 不再支持它们,但超过 30% 的目标受众使用它们。
最后一件事:为什么我的问题被否决了?是否违反任何 StackOverflow 规则?
【问题讨论】:
-
对于
flex,您可以使用order- developer.mozilla.org/ru/docs/Web/CSS/order -
请显示您的 HTML 并对其进行描述。
-
您需要支持哪些“旧浏览器”?
-
一种快速但丑陋的方法是设置 position:relative;在父级上,位置:绝对;左:0;在标志上。然后在 h1 文本中添加一个与 logo 一样宽的 margin-right。
-
I can't use Flexbox since I need to support older browsers.您可能想考虑使用polyfills,不要因为旧浏览器而限制自己,否则这将是痛苦的一生.. :) github.com/Modernizr/Modernizr/wiki/…
标签: javascript html css layout