IE не показывает border-bottom для тега abbr
Я был удивлен, что не нашел результатов поиска в Google по этому вопросу:). Если вы откроете эту ссылку w3schools ( https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_abbr_test), вы увидите, что IE не показывает ни одной строки под сокращенным словом "WHO", где, как и другие браузеры делать. Я не хочу добавлять явное border-bottom: 1px dotted #color, потому что, когда текст в других ячейках таблицы переносится на несколько строк, добавляемое приложением border-bottom будет сдвигаться далеко вниз вместо того, чтобы оставаться прямо под аббревиатурой. помеченное слово Я хотел бы знать, почему IE не показывает строку под тегами abbr. Спасибо за ваше время!
Вот кодовая ручка для второго выпуска (проблема с margin-bottom: auto в IE). Если вы уменьшите размер до 750 пикселей, вы увидите, как смещается линия под тегом abbr. Если вы откомментируете стиль в разделе abbr [title], который я добавил, и повторите попытку, проблема будет исправлена в других браузерах, кроме IE. https://codepen.io/Sankaryc/pen/aGOqoZ
HTML:
<div>
<div class="flex-row">
<div class="flex-basis-9">
<label>Field1</label>
</div>
<div class="flex-basis-24">Value1 </div>
<div class="flex-basis-9">
<label>Field2</label>
</div>
<a href="/some-url">dummy url</a>
<abbr title="Stackru" tooltipPosition="bottom">SO</abbr>
<div class="flex-basis-9"></div>
<div class="flex-basis-9">
<label>Field3</label>
</div>
<div class="flex-basis-24">Value3 </div>
</div>
CSS:
div {
padding-right:2px;
}
.flex-row {
display:flex;
line-height:1;
width:100%;
margin-top:3px;
}
.flex-basis-9 {
flex-basis:9%;
}
label {
padding: 0;
}
.flex-basis-24 {
flex-basis:24.33%;
}
abbr[title] {
cursor: help;
border-bottom: 1.5px dotted #000 !important;
text-decoration: none !important;
/*margin-bottom:auto */
}
a {
padding-right: 10px;
}
1 ответ
Значением по умолчанию для сокращений и аббревиатур в Internet Explorer является text-decoration: none;
, Вы можете указать желаемый стиль (кросс-браузер), добавив это определение стиля к вашему CSS:
abbr[title], acronym[title] {
text-decoration: none;
border-bottom: 1px solid dotted;
}
Отредактируйте свою конкретную проблему (когда вы обновили свой ответ) не само сокращение, а созданная вами сетка флексбокса. Вам просто нужно обернуть abbr
в контейнере (например, div, как я сделал в моем случае), поэтому abbr
сам по себе не будет рассматриваться как гибкий элемент наследования (так как его контейнер имеет display: flex;
,
div {
padding-right:2px;
}
.flex-row {
display:flex;
line-height:1;
width:100%;
margin-top:3px;
}
.flex-basis-9 {
flex-basis:9%;
}
label {
padding: 0;
}
.flex-basis-24 {
flex-basis:24.33%;
}
abbr[title] {
position: relative;
cursor: help;
text-decoration: none !important;
}
abbr[title]:before {
position: absolute;
left: 0;
top: 1em;
width: 100%;
content: '';
border-bottom: 1px dotted #000 !important;
}
a {
padding-right: 10px;
}
<div>
<div class="flex-row">
<div class="flex-basis-9">
<label>Field1</label>
</div>
<div class="flex-basis-24">Value1 </div>
<div class="flex-basis-9">
<label>Field2</label>
</div>
<a href="/some-url">dummy url</a>
<abbr title="Stackru" tooltipPosition="bottom">SO</abbr>
<div class="flex-basis-9"></div>
<div class="flex-basis-9">
<label>Field3</label>
</div>
<div class="flex-basis-24">Value3 </div>
</div>