• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ustawienie wysokości elementu na dany procent jego szerokości.

Object Storage Arubacloud
0 głosów
966 wizyt
pytanie zadane 18 września 2015 w HTML i CSS przez Bartos Użytkownik (610 p.)

Witam, 

zastanawiam się czy jest możliwy zabieg w CSS taki, że ustawiamy sobie jakiś element, który ma jakaś daną szerokość, a wysokość tego elementu ustawiać na dany procent jego szerokości. Chaczyk tkwi w tym, że szerokość jest dynamiczna - wyrażona w procentach. No bo gdyby była by to wartość statyczna to wystarczy sobie policzyć :)
Da się jakoś pobrać aktualną szerokość elementu i potem ją wykorzystać?
Aby zobrazować o co mi chodzi:

div
{
width: 100%;
height: 0.62 * width;
}

Tak wiem, powyższy zapis jest durny, ale chcę jakoś pokazać co mi chodzi po głowie :)
Da się coś takiego zrobić?

2 odpowiedzi

+1 głos
odpowiedź 18 września 2015 przez Gerard Szymański Obywatel (1,520 p.)
wybrane 18 września 2015 przez Bartos
 
Najlepsza
Wszystko się da zrobić. Za pomocą JQuery.

Może to ci pomoże http://api.jquery.com/css/ , http://www.w3schools.com/jquery/jquery_css.asp
komentarz 18 września 2015 przez Bartos Użytkownik (610 p.)

Ok, ogarnąłem, problem jest tylko taki, że

var width = $(".entry-thumb").css("width");

nie zwraca liczby, lecz stringa (?), czyli np. 659px, więc jeśli zapiszę 0.6 * width, to to nie zadziała.

Jakieś pomysły jak to przekonwertować na liczbę?

komentarz 18 września 2015 przez Anonim Mądrala (6,000 p.)

Może tak:

width=width.substr(0,width.length-2);

 

komentarz 18 września 2015 przez Bartos Użytkownik (610 p.)
Dosłowanie przed chwilą znalazłem to rozwiązanie. Dzięki za pomoc!

Wszystko działa oczywiście.
0 głosów
odpowiedź 18 września 2015 przez Anonim Mądrala (6,000 p.)
edycja 18 września 2015 przez Anonim

W css bez preprocesora nie, ale da się w js:

var width=document.getElementById("div").width;
document.getElementById("div").height=0.62*width;

Jeśli koniecznie chcesz to zrobić w css, to poczytaj o preprocesorach.

komentarz 18 września 2015 przez Bartos Użytkownik (610 p.)
Jest tylko jeden problem, rzeczony element jest (a właściwie to będzie) zdjęciem wpisu w wordpresie i rzeczony element ma klasę, nie id, ponieważ będzie na stronie kilka takich. Jak w takim wypadku mam przechwycić szerokość?

/edit

Spróbuję z jquery, jak zaproponował kolega ponieżej i dam znać :)
komentarz 18 września 2015 przez Anonim Mądrala (6,000 p.)

Nie jestem do końca pewny.

var width=document.getElementsByClassName("div").width;
document.getElementsByClassName("div").height=0.62*width;

Jeśli nie działa, to trzeba zrobić pętle, która do każdego elementu danej klasy przypisze wysokość.

komentarz 18 września 2015 przez Bartos Użytkownik (610 p.)

Coś nie bardzo chce mi to działać, ani tak: 


var width=document.getElementsByClassName("div").width;
document.getElementsByClassName("div").height=0.62*width;

ani tak: 

$(document).ready(function(){
		var width = $(".entry-thumb").css("width");
		$(".entry-thumb").css("height",0.62 * width);
	});

 

komentarz 18 września 2015 przez Anonim Mądrala (6,000 p.)
Na jqery się nie znam, był sposób, aby każdemu elementowi o danej klasie nadać np. wysokość, pamiętam, że trzeba było zrobić pętle w js. Niestety nie mogę tego znaleźć.

Możesz jeszcze spróbować preprocesora, ale chyba nie ma to sensu.

Podobne pytania

0 głosów
1 odpowiedź 2,415 wizyt
pytanie zadane 7 października 2015 w PHP przez GummyBear Nowicjusz (190 p.)
0 głosów
2 odpowiedzi 250 wizyt
0 głosów
2 odpowiedzi 483 wizyt

92,580 zapytań

141,433 odpowiedzi

319,665 komentarzy

61,965 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...