Разверните div, чтобы заполнить оставшуюся ширину

Java double - это номер двоичного кода IEEE 754.

Это означает, что нам нужно рассмотреть:

  1. Mantissa - 52 бит
  2. Показатель - 11-битное число с 1023 смещением (т. е. с добавлением 1023)
  3. Если показатель степени равен 0, а мантисса не равна нулю, то число называется ненормированным

Это в основном означает, что существует всего 2 ^ 62-2 ^ 52 + 1 возможных двойных представлений, которые в соответствии со стандартом находятся между 0 и 1. Заметим, что 2 ^ 52 + 1 - это удаление случаев ненормированных чисел.

Помните, что если мантисса положительна, а показатель отрицательного числа положителен, но меньше 1: -)

Для других чисел это немного сложнее, Целочисленные числа краев могут не отображаться точным образом в представлении IEEE 754 и потому, что есть другие биты, используемые в экспоненте, чтобы они могли представлять числа, поэтому чем больше число, тем ниже различные значения.

505
задан Reggie Pinkham 11 June 2019 в 01:03
поделиться

7 ответов

Решение на самом деле очень простое, но не все очевидно. Вы должны вызвать нечто, называемое «контекстом форматирования блока» (BFC), который определенным образом взаимодействует с float.

Просто возьмите этот второй div, удалите float и дайте ему overflow: hidden вместо. Любое значение переполнения, кроме видимого, превращает установленный блок в BFC. BFC не позволяют дочерним поплавкам выходить из них, а также не позволяют поплавкам братьев и сестер / предков вторгаться в них. Чистый эффект здесь заключается в том, что плавающий div будет делать свое дело, тогда второй div будет обычным блоком, занимающим всю доступную ширину , за исключением того, что занято float .

Это должно работать во всех текущие браузеры, хотя вам, возможно, придется запускать hasLayout в IE6 и 7. Я могу ' Напомним.

Демонстрации:

986
ответ дан 22 November 2019 в 22:31
поделиться

Если обе ширины имеют переменную длину, почему бы вам не вычислить ширину с помощью скриптов или серверной части?

Дерево

<div style="width: <=% getViewWidth() %>">View</div>
-3
ответ дан 22 November 2019 в 22:31
поделиться

Взгляните на доступные рамки макета CSS. Я бы порекомендовал Simpl или, немного более сложный, фреймворк Blueprint.

Если вы используете Simpl (который предполагает импорт только одного файла simple.css ), вы можете сделать это :

<div class="Colum­nOne­Half">Tree</div>
<div class="Colum­nOne­Half">View</div>

для макета 50-50 или:

<div class="Colum­nOne­Quarter">Tree</div>
<div class="Colum­nThreeQuarters">View</div>

для макета 25-75.

Это так просто.

0
ответ дан 22 November 2019 в 22:31
поделиться

Я не уверен, что это тот ответ, которого вы ожидаете, но почему бы вам не установить для ширины Дерева значение «Авто» и ширины «Вид» на 100%?

0
ответ дан 22 November 2019 в 22:31
поделиться

Это был бы хороший пример того, что тривиально сделать с таблицами и сложно (если не невозможно, по крайней мере, в кроссбраузерном смысле) сделать с CSS.

Если и то, и другое. столбцы имели фиксированную ширину, это было бы легко.

Если бы один из столбцов был фиксированной ширины, это было бы немного сложнее, но вполне выполнимо.

С обоими столбцами переменной ширины, ИМХО вам нужно просто использовать двух- столбец таблицы.

27
ответ дан 22 November 2019 в 22:31
поделиться

Здесь это может помочь ...

      
Дерево
Просмотр
15
ответ дан 22 November 2019 в 22:31
поделиться

Спасибо за плагин Simpl.css!

не забудьте обернуть все свои столбцы в ColumnWrapper вот так.

<div class="ColumnWrapper">
    <div class="Colum­nOne­Half">Tree</div>
    <div class="Colum­nOne­Half">View</div>
</div>

Я собираюсь выпустить версию 1.0. Simpl.css, так что помогите распространить информацию!

1
ответ дан 22 November 2019 в 22:31
поделиться