разница между шириной авто и шириной 100 процентов
104
Ранее мое предположение о width: auto что ширина установлена равной ширине содержимого. Теперь я вижу, что он занимает всю ширину родительского элемента.
Вкратце: 1) auto, ширина / высота родительского div будет суммой его дочерних элементов. 2) 100 процентов, его ширина / высота будут его родительскими. См. Статью здесь
Алан Донг
Ответы:
147
Ширина авто
Начальная ширина элемента уровня блока, такого как div или p, - auto. Это заставляет его расширяться, чтобы занять все доступное горизонтальное пространство внутри содержащего его блока. Если у него есть какие-либо горизонтальные отступы или границы, их ширина не прибавляется к общей ширине элемента.
Ширина 100%
С другой стороны, если вы укажете width: 100%, общая ширина элемента будет составлять 100% от его содержащего блока плюс любые горизонтальные поля, отступы и граница (если вы не использовали box-sizing: border-box, и в этом случае к 100% добавляются только поля, чтобы изменить способ расчета общей ширины). Это может быть то, что вы хотите, но, скорее всего, это не так.
Чтобы увидеть разницу, посмотрите на эту картинку:
Таким образом, в основном это не имеет ничего общего с размером содержимого элементов, но полностью относится к родительской ширине?
haemse
87
width: auto; будет стараться как можно сильнее сохранить элемент той же ширины, что и его родительский контейнер, когда дополнительное пространство добавляется из полей, отступов или границ.
width: 100%;сделает элемент такой же шириной, как родительский контейнер. Дополнительный интервал будет добавлен к размеру элемента безотносительно к родительскому элементу. Обычно это вызывает проблемы.
то же самое, что и @ C-link, но с дополнительным графическим интерфейсом. so +1
Navin Rauniyar
8
Речь идет о полях и границах. Если вы используете width: auto, затем добавьте границу, ваш div не станет больше, чем его контейнер. С другой стороны, если вы используете width: 100%и некоторую границу, ширина элемента будет 100% + граница или поле. Для получения дополнительной информации см. Это .
Пока значение width равно auto, элемент может иметь горизонтальные поля, отступы и границу, не становясь шире, чем его контейнер (если, конечно, сумма margin-left + border-left-width + padding-left + padding-right + border-right-width + margin-right больше контейнера). Ширина его поля содержимого будет такой, какая останется после вычитания полей, отступов и границ из ширины контейнера.
С другой стороны, если вы укажете width: 100%, общая ширина элемента будет составлять 100% от его содержащего блока плюс любые горизонтальные поля, отступы и граница (если вы не использовали box-sizing: border-box, и в этом случае к 100% добавляются только поля, чтобы изменить способ расчета общей ширины). Это может быть то, что вы хотите, но, скорее всего, это не так.
Ширина 100%:
будет заполнено 100%. margin, border, padding будут добавлены к этой ширине, и элемент будет переполняться, если что-либо из этого добавлено.
Авто по ширине:
он поместит элемент в доступное пространство, включая поля, границу и отступы. пространство, оставшееся после настройки поля + отступа + границы, будет доступно по ширине / высоте.
Ширина 100% + box-sizing: border box:
он также будет соответствовать элементу в доступном пространстве, включая границу, отступы (маржа заставит его переполнять контейнер).
Начальная ширина элемента уровня блока, такого как div или p, - auto.
Используйте width: auto, чтобы отменить явно заданную ширину.
если вы укажете width: 100%, общая ширина элемента будет равна 100% содержащего его блока плюс любые горизонтальные поля, отступы и границы.
Итак, в следующий раз, когда вы обнаружите, что устанавливаете ширину элемента уровня блока на 100%, чтобы он занимал всю доступную ширину, подумайте, действительно ли вы хотите установить для него значение auto.
Это не отвечает на вопрос о разнице между 100 & и auto.
JoeTidee 07
1
Да, я знаю, но я пытаюсь показать здесь width: auto и display: inline-block . Когда мы хотим автоматически увеличить ширину любого элемента уровня блока, мы можем использовать это. И разница между 100% и авто
Мохаммед Джавед
0
Когда мы говорим
width:auto;
ширина никогда не будет превышать общую ширину родительского элемента. Максимальная ширина - это родительская ширина. Даже если мы добавим границу, отступы и поля, содержимое самого элемента станет меньше, чтобы освободить место для границы, отступов и полей. В случае, если пространство, необходимое для границы + заполнения + поля, больше, чем общая ширина родительского элемента, ширина содержимого станет нулевой.
Когда мы говорим
width:100%;
ширина содержимого элемента станет 100% родительского элемента, и с этого момента, если мы добавим границу, отступ или маржу, это приведет к тому, что дочерний элемент будет превышать ширину родительского элемента, и он начнет выходить за пределы родительского элемента.
Ответы:
Ширина авто
Ширина 100%
Чтобы увидеть разницу, посмотрите на эту картинку:
Источник
источник
width: auto
себя ведет: stackoverflow.com/questions/28353625/…auto
делает то же самоеfill-available
width: auto;
будет стараться как можно сильнее сохранить элемент той же ширины, что и его родительский контейнер, когда дополнительное пространство добавляется из полей, отступов или границ.width: 100%;
сделает элемент такой же шириной, как родительский контейнер. Дополнительный интервал будет добавлен к размеру элемента безотносительно к родительскому элементу. Обычно это вызывает проблемы.источник
Речь идет о полях и границах. Если вы используете
width: auto
, затем добавьте границу, ваш div не станет больше, чем его контейнер. С другой стороны, если вы используетеwidth: 100%
и некоторую границу, ширина элемента будет 100% + граница или поле. Для получения дополнительной информации см. Это .источник
Пока значение width равно auto, элемент может иметь горизонтальные поля, отступы и границу, не становясь шире, чем его контейнер (если, конечно, сумма margin-left + border-left-width + padding-left + padding-right + border-right-width + margin-right больше контейнера). Ширина его поля содержимого будет такой, какая останется после вычитания полей, отступов и границ из ширины контейнера.
С другой стороны, если вы укажете width: 100%, общая ширина элемента будет составлять 100% от его содержащего блока плюс любые горизонтальные поля, отступы и граница (если вы не использовали box-sizing: border-box, и в этом случае к 100% добавляются только поля, чтобы изменить способ расчета общей ширины). Это может быть то, что вы хотите, но, скорее всего, это не так.
Источник:
http://www.456bereastreet.com/archive/201112/the_difference_between_widthauto_and_width100/
источник
Ширина 100%: будет заполнено 100%. margin, border, padding будут добавлены к этой ширине, и элемент будет переполняться, если что-либо из этого добавлено.
Авто по ширине: он поместит элемент в доступное пространство, включая поля, границу и отступы. пространство, оставшееся после настройки поля + отступа + границы, будет доступно по ширине / высоте.
Ширина 100% + box-sizing: border box: он также будет соответствовать элементу в доступном пространстве, включая границу, отступы (маржа заставит его переполнять контейнер).
источник
Начальная ширина элемента уровня блока, такого как div или p, - auto.
Используйте width: auto, чтобы отменить явно заданную ширину.
если вы укажете width: 100%, общая ширина элемента будет равна 100% содержащего его блока плюс любые горизонтальные поля, отступы и границы.
Итак, в следующий раз, когда вы обнаружите, что устанавливаете ширину элемента уровня блока на 100%, чтобы он занимал всю доступную ширину, подумайте, действительно ли вы хотите установить для него значение auto.
источник
Использование ширины: авто; + отображение: встроенный блок; в css дает потрясающий эффект.
width : auto; display: inline-block;
источник
Когда мы говорим
width:auto;
ширина никогда не будет превышать общую ширину родительского элемента. Максимальная ширина - это родительская ширина. Даже если мы добавим границу, отступы и поля, содержимое самого элемента станет меньше, чтобы освободить место для границы, отступов и полей. В случае, если пространство, необходимое для границы + заполнения + поля, больше, чем общая ширина родительского элемента, ширина содержимого станет нулевой.
Когда мы говорим
width:100%;
ширина содержимого элемента станет 100% родительского элемента, и с этого момента, если мы добавим границу, отступ или маржу, это приведет к тому, что дочерний элемент будет превышать ширину родительского элемента, и он начнет выходить за пределы родительского элемента.
источник