CSS: Как Ширина работает процентом?

Я имею то, что я думаю, странная проблема. У меня есть одно отделение в родительском отделении, и я даю дочернему отделению ширину 100%, но это не растет до размера родительского отделения.

У родительского отделения нет ширины набора никакого вида. Так мой вопрос: ширина в проценте только работают, когда родительский элемент имеет ширину набора, или это должно вырасти так или иначе?

РАЗЪЯСНЕНИЕ:

Некоторые могут задаваться вопросом, как у родительского отделения есть ширина для роста до вообще, если оно само не имеет ширины набора. Причина, у меня есть другие одноуровневые элементы дочернего элемента в родительском отделении с шириной набора им, таким образом, родительское отделение выросло для встречи тех одноуровневых ширин.

ПРИМЕР КОДА:

<div id="parent-div">
    <div id="child-element" style="width: 100%">Content</div>
    <div id="sibling" style="width: 250px"></div>
</div>

Дочерний элемент не растет для встречи родительского отделения. Ширина 100% ничего по существу не делает во всем, что я могу сказать. Это находится в IE7.

Спасибо.

ПРОДОЛЖЕНИЕ: Спасибо все для ответов. Я - проба занятости на своем конце. Я первоначально думал, что родительское единственное отделение становится столь же широким как их дети, но оказывается, что мне неправильно дали мой пример выше, который я кодировал только для демонстрации моей проблемы, которую я имею. В моем случае у моего родительского отделения есть a position: fixed и bottom: 1px и right: 1px относившийся это. От моих тестов это, кажется, изменяет поведение родительского отделения. Больше это автоматически не простирается ко всей ширине страницы, но принимает поведение, я думал, имел место так или иначе, который является родительским отделением, расширяется только достаточно для размещения его самого широкого ребенка. Таким образом, это - поведение, я вижу теперь, но только потому, что у моего родительского отделения есть фиксированная позиция.

7
задан easwee 6 January 2015 в 09:16
поделиться

4 ответа

COM также не имеет большого значения для разработки драйвера режима ядра, но он потенциально полезен для драйверов режима пользователя. DirectShow - это, например, COM, и есть даже легкий аналог COM, используемый в DShow-фильтрах в режиме ядра.

Существует много кода, который является COM, и устаревшему коду требуются годы или десятилетия, чтобы исчезнуть. Но более важным является то, что сборка .NET выглядит как COM-объекты при использовании из C/C + +, поэтому я думаю, что есть еще некоторое значение в знании COM , если вы намерены продолжать писать C/C + + код .

Если вы планируете перейти на C #, Java или один из десятков других языков без указателей, которые (судя по вопросам здесь SO) большинство программистов приняли, то нет, не стоит стоимости возможности.

-121--3126653-

В зависимости от того, насколько сильно необходимо оптимизировать производительность сайта, вместо этого можно использовать Combres .

Большое преимущество заключается в том, что он делает только minify и gzip ваших файлов javascript, но он также объединяет все файлы в один, так что есть только один HTTP-запрос для всех ваших файлов javascript. Кроме того, оно также использует кэширование на стороне клиента, так что файл загружается только при необходимости. Кроме того, он делает все это и для CSS-файлов.

Это довольно легко настроить, так что вместо того, чтобы пытаться исправить это, ваше время может быть лучше потрачено на получение Комбра вместо этого.

-121--1930412-

Не увидев остальной CSS и HTML, я предполагаю, что то, что вы опубликовали, есть все, что есть в вашем HTML и CSS.

В этом случае

  • parent-div будет точно такой же шириной, как и страница, т.е. 100%.
  • Дочерний элемент также будет иметь такую же ширину, как и страница, т.е. 100%, и будет находиться внутри родителя-див
  • , который будет иметь ширину 250рх и находиться под дочерним элементом

. Если это не так, у вас возникнут другие помехи HTML или CSS.

2
ответ дан 7 December 2019 в 18:43
поделиться

На самом деле это уловка css. Это происходит следующим образом:

Если установить положение родительского div в относительное, а положение дочернего divs в абсолютное, то дочерние divs останутся внутри родительского div, даже если их положение является абсолютным.

Для получения дополнительной информации см. Абсолютное позиционирование внутри относительного позиционирования .

Спасибо

-121--4067261-

linux имеет команду split

split -l 100000 file.txt

будет разделен на файлы размером 100 000 строк

-121--1589416-

На этом снимке экрана показано, как измеряются метрики с помощью CSS. Извините французов, это с моего компьютера.

набивки, маржа и граница http://img524.imageshack.us/img524/5211/capturedcran20100204173.png

Где «маржа» означает маржа , «бордюр» означает граница и «выход» означает набивки . Запас падает вокруг границы , которая в свою очередь падает вокруг набивок , которая в свою очередь падает вокруг фактического размера элемента. В этом примере (который был взят при проверке ответа на переполнение стека < textarea > тэгов) показано, что запаса нет, граница имеет ширину 1px, а между границей < textarea > и ее содержимым имеется 3px набивка; и размер содержимого, который может использоваться, за исключением набивки, составляет 660x200. Этот размер соответствует свойствам CSS ширин и height .

Из вложенного элемента можно занимать только фактический размер элемента. Набивка для родительского объекта приведет к тому, что вложенный изделия сохранят поле. Это означает, что между границей вложенного объекта и границей родительского объекта может оставаться место.

Если требуется, чтобы вложенный < div > принял все возможные комнаты, необходимо установить для его свойства margin значение 0px , а для свойства набивок его родителя - значение 0px .

0
ответ дан 7 December 2019 в 18:43
поделиться

На самом деле это трюк css. Это выглядит следующим образом:

Если вы установите положение родительского div на относительное, а положение дочерних div на абсолютное, тогда дочерние div останутся внутри родительского div, даже если их положение будет абсолютным.

См .: Абсолютное позиционирование внутри относительного позиционирования для получения дополнительных объяснений.

Спасибо

0
ответ дан 7 December 2019 в 18:43
поделиться

Как заметил zneak, не забудьте сбросить модель css box ; см. эту замечательную статью о понимании блочной модели .

#parent div {
    padding: 0;
    margin: 0;
}

Чтобы указать, не забудьте установить

#child-element {
    display: block;
}

, поскольку вы могли установить его как inline , и он не будет расширяться до 100% ширины родительского элемента.

Я не смог воспроизвести вашу проблему, все работало нормально.

0
ответ дан 7 December 2019 в 18:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: