проблема порядка элементов rtl направления css
у меня есть этот html:
<body style="direction: rtl">
<div style="display:inline-block">
<span>x:</span> <span>1</span>,
<span>y:</span> <span>2</span> |
<a>link1</a> |
</div>
<a>link2</a>
</body>
С направлением: ltr он отображает:
x: 1, y: 2 | link1 | link2
но когда я меняю его на rtl, показывает:
link2 | x: 1, y: 2 | link1
в то время как я ожидал:
link2 | link1 | 2 :y ,1 :x
есть ли способ установить свойства css для достижения ожидаемого результата без изменения структуры элементов DOM(типы элементов могут быть изменены)?
2 ответов
попробуйте это:
<body style="direction: rtl">
<div style="display:inline-block">
<span dir="rtl">x:</span> <span dir="rtl">1</span>,
<span dir="rtl">y:</span> <span dir="rtl">2</span> |
<a>link1</a> |
</div>
<a>link2</a>
</body>
Это дало мне то, чего вы хотели.
Полезные ссылки:http://www.i18nguy.com/markup/right-to-left.html и http://www.w3.org/TR/html401/struct/dirlang.html
измените встроенный блок на inline-flex
<body style="direction: rtl">
<div style="display:inline-flex">
<span>x:</span> <span>1</span>,
<span>y:</span> <span>2</span> |
<a>link1</a> |
</div>
<a>link2</a>
</body>
Это будет отображаться, как вы хотите, в FF & Chrome, но не в IE.