взлом пуленепробиваемой ширины в css, который будет охватывать все, включая Safari?

#css #google-chrome #firefox #safari

#css #google-chrome #firefox #safari

Вопрос:

Я использовал этот класс для правильного растягивания divs и входных данных, чтобы они соответствовали доступному пространству, без переполнения из-за заполнения, как -moz-available это делает.

Он работает в Firefox, Chrome, Opera.

К сожалению, Safari, похоже, единственный браузер, который с этим не справляется.

 .width {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: -moz-available;
width: -webkit-fill-available;
}
 

Могу ли я что-нибудь добавить к этому, чтобы заставить его работать с Safari?

Ответ №1:

Объявление width: 100% отлично работает в Safari (и в других браузерах). Разница между объявлениями width: 100% и width: available заключается в том, что первое следует использовать с box-sizing: border-box для предотвращения переполнения, а последнее можно использовать без объявления box-sizing: border-box . Таким образом, ваш класс можно переписать следующим образом, и он должен работать в Safari:

 .width {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box: 
    width: 100%;
}
 

Комментарии:

1. Хах, я чувствую себя глупо прямо сейчас. Я так долго использовал border-box просто по привычке, что забыл его фактическую цель — предотвращать предупреждения о поврежденных размерах. Спасибо за напоминание.