Сложная проблема CSS - получение значений из других свойств? - PullRequest
0 голосов
/ 03 февраля 2010

Мне нужно получить значение другого свойства в CSS. Скажем, у меня есть это в файле CSS:

.something {
 width: 256px;
}

тогда в чем-то2 я хочу использовать значение:

.something2 {
 width: .something.width;
}

как я могу достичь этого без JavaScript? Причина, по которой мне это нужно, заключается в том, что я использую анимацию CSS 3:

@-webkit-keyframes somethinghere {
    0% {
        background-position: -48px 0px;
    }
    100% {
        background-position: .something.width 0px;
    }
}

и значение x фона конца анимации. Я хочу быть шириной "чего-то". Возможно ли это сделать в CSS (3)? Даже если это черновик спецификации или только один браузер поддерживает его, я хочу услышать об этом.

Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 03 февраля 2010

Это невозможно с CSS. Но вы можете добиться этого с Sass или Compass .

Цитата из Sass:

Sass снова делает CSS забавным. Sass - это CSS, а также вложенные правила, переменные , миксины и многое другое в сжатом, читабельном синтаксисе.

В основном это другой язык, похожий на CSS. Эти файлы затем компилируются в файлы CSS. Итак, у вас есть еще один шаг для создания CSS-файлов, но язык, на котором вы их создаете, более мощный.

0 голосов
/ 03 февраля 2010

попробуйте константы на стороне сервера Шона Инмана, вы можете использовать их вот так

@server constants {
    constantName: constantValue;
    }

selector {
    property: constantName;
    }

http://www.shauninman.com/archive/2005/08/09/css_constants

0 голосов
/ 03 февраля 2010

Да, как сказал FRKT, это невозможно с использованием только CSS, хотя для этого есть и другие способы, кроме CSS.CSS не является геттером и сеттером для самих стилей.

0 голосов
/ 03 февраля 2010

CSS еще не поддерживает переменные.Вы можете имитировать это, используя PHP в своей таблице стилей.

...