Этот тип расчета в настоящее время не поддерживается в CSS (конечно, не в Chromium 12 / Ubuntu 11.04), но в CSS 3 определена функция calc()
, которая допускает такой тип поведения, используя простые математическиефункции:
section {
float: left;
margin: 1em; border: solid 1px;
width: calc(100%/3 - 2*1em - 2*1px);
}
p {
margin: calc(1rem - 2px) calc(1rem - 1px);
border: solid transparent; border-width: 2px 1px;
}
p:hover { border-color: yellow; }
(приведенный выше пример взят непосредственно из W3.org .)
Мои собственные (исчерпывающие) тесты показывают:
+----------------+-------------------+
| Browser | Ubuntu 11.04 |
+----------------+-------------------+
| Chromium 12 | Fails |
| Firefox 5 | Fails |
| Opera 11.10 | Fails |
+----------------+-------------------+
Приведенные выше результаты были получены с использованием названных браузеров и css calc()
demo , код которого приведен ниже:
HTML:
<div id="box">This is the box.</div>
CSS:
#box {
width: calc(100% - 20%);
background-color: #f90;
font-weight: bold;
color: #fff;
line-height: 2em;
text-align: center;
margin: auto;
}
(Если кто-то захочет запустить вышеуказанный тест в браузерах на своей платформе и предоставить результаты или отредактировать их в ответ, это будет очень приветствуется.)
Как указано clairesuzy , в комментариях:
[Взгляните] на caniuse он работает в Firefox , если вы используете width: -moz-calc()
, но это все;)
И, действительно, в FirefОх 5 (Ubuntu 11.04) это работает (префиксы других поставщиков, похоже, ничего не делают для Opera или Webkit;к сожалению): Пересмотренная демонстрационная версия с префиксом поставщика .
Ссылка: