html - "End"- 对齐 CSS 中的元素

标签 html css webkit right-to-left

我有一个元素需要正确处理从左到右和从右到左的文本。在设计中,一些元素是右对齐的。这意味着对于 rtl,它们需要左对齐。

有没有办法使用 CSS 将事物对齐到“末端”而不是“右边”?我在这里专门针对 Webkit。

我想做的事的例子:

float: end; /* instead of float: right */

position: absolute;
end: 0px; /* instead of right: 0px */

显然,这些都不起作用。

我知道可以为 rtl 设置样式,并使用它来将我所有的 right: 0px; 更改为 left: 0px。我正在寻找更好的解决方案。


编辑:

在某些情况下,页面上到处都是元素,可以做各种各样的事情。但我现在专门研究的是菜单栏。它的左边有一些静态按钮,中间有一个可变面包屑,右边有一些静态按钮。面包屑应该像正常文本一样流动(视情况从左到右或从右到左)。

最佳答案

Flexbox 的设计不仅仅考虑了典型的 LTR 书写方式。在对齐和对齐方面,它具有像 flex-startflex-end 这样的语言。根据您描述相关元素的方式,可能没有必要使用它们。

http://codepen.io/cimmanon/pen/bdynv (包含 LTR 和 RTL 示例)

<nav class="rtl">
  <img src="http://placekitten.com/100/50" alt="Cat Button" />
  <img src="http://placekitten.com/80/50" alt="Other Cat Button" />

  <ul>
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
  </ul>

  <img src="http://placekitten.com/100/50" alt="Cat Button" />
  <img src="http://placekitten.com/80/50" alt="Other Cat Button" />
</nav>

CSS:

nav {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  /* optional */
  -webkit-box-align: center;
  -moz-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  align-items: center;
}

ul {
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
ul li {
  display: inline-block;
}

.rtl {
  direction: rtl;
}

请注意,使用表格/表格单元显示属性可以实现同样的效果,但它需要额外的元素。

关于html - "End"- 对齐 CSS 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962945/

相关文章:

html - 响应式网站 - 高度始终为 100%

css - 在 Eclipse 中抑制 JavaFX CSS 错误?

webkit - input::-webkit-outer-spin-button 设置 margin-left 并且只在 Chrome 中显示

javascript - 使用 JavaScript 设置 webkit-keyframes from/to 参数

javascript - 无法修改 Controls 集合,因为该控件包含代码块(即 <% ...%>)ajax 工具包 html 编辑器

python - 将 Pandas 数据框传递给 Django 模板

javascript - 有没有办法在 IE 中获取边框半径和渐变背景?

Java-WebKit : EventSource object can not be created?

html - 固定宽度元素在 Mac 上折叠

html - 导航项上的当前链接 blip