2011-12-27 12 views
9

Mam element div, który pozycjonuję z ujemnym marginesem, ale chciałbym, aby rozciągnął się aż do dna pojemnika div, więc mogę użyć obramowania, które nie kończy się losowo. Jeśli spojrzysz na http://kineticaid.com/k/home.php, zrozumiesz, o co mi chodzi. Nie mogę po prostu powiększyć jego wysokości w pikselach, ponieważ wysokość div kontenera zmienia się dynamicznie wraz ze stronami. Co chcę zrobić, to coś takiego:Czy istnieje sposób dodawania i odejmowania wartości w CSS?

#rightcol { 
float: right; 
width: 225px; 

height: 100% + 250px; 

margin: -325px -25px 0 0; 
} 

Zasadniczo pytam, czy możesz dodawać i odejmować w CSS. Dzięki!

+2

Istnieje Preprocesory CSS jak zmniejszyć lub SASS, które dodają taką funkcję, ale nie jestem pewien, czy to, o co prosicie. –

+0

Myślę, że po prostu szukam sposobu na połączenie pikseli i procentów w tym samym oświadczeniu CSS, jeśli jest to nawet możliwe. – Brad

+1

Zaznacz to pytanie http://stackoverflow.com/questions/527861/value-calculation-for-css Może można użyć Javascript ... – Nalaka526

Odpowiedz

0

Sass i mniej mają podobne funkcje, które są potrzebne, ale myślę, że to, o co pytasz, trzeba zrobić z javascript lub jquery, aby wykonać obliczenia.

http://api.jquery.com/height/

0

Rozwiązaniem tego problemu jest "Faux Columns", ale trzeba zmienić swoją układ trochę do tego.

+0

To jest dobre, ale wymagałoby to za pomocą Photoshopa, który jest nie do końca moja uliczka: p – Brad

+0

Tylko dlatego, że umiejętność nie jest "na twojej drodze", nie oznacza to, że jest dobrym rozwiązaniem. Podstawowa edycja grafiki jest dość podstawową umiejętnością programisty stron internetowych. – Gareth

+0

No i nie o to pytałem. Zastanawiam się, czy CSS ma wbudowaną możliwość dodawania i odejmowania wartości różnych typów. To dobre rozwiązanie. – Brad

20

Tak. CSS3 ma funkcję calc(). Działa to w obecnych wersjach większości przeglądarek (http://caniuse.com/calc).

height: calc(100% + 250px); 

Demo:jsFiddle

HTML:

<div id="one"></div> 
<div id="two"></div> 

CSS:

div { 
    border: 1px solid red; 
    height: 100px; 
} 

#one { 
    width: calc(50% + 20px); 
} 

#two { 
    width: 50%; 
} 

wyjściowa:

enter image description here

+0

Dzięki, przyjrzę się temu. Dobrze jest wiedzieć, że tego typu rzeczy zostały uwzględnione w CSS3. – Brad

+0

jest również prefiks dostawcy Webkit – Burntime