Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Размер блока div (https://javascript.ru/forum/events/74182-razmer-bloka-div.html)

ioprst_ 20.06.2018 09:05

Размер блока div
 
Привет. Подскажите, пожалуйста, в чем может быть проблема. Есть HTML код:
<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
    <title>testPrj</title>
	<style>
		.wrapper {height: 100%; display: table; width: 100%;}
		.header {display: table-row; height: 1px;}
		.main {height: 100%; display: table; width: 100%;}
		.box {display: table-cell;}
		.sidebar {width: 200px;}
		.content {height: 100%;}
		.content iframe {width: 100%; height: 100%; border: none; margin: 0; padding: 0; display: block;}
		.footer {display: table-row; height:1px;}
		/* Basic Style*/
		* { margin:0; padding:0;}
		html, body {height: 100%;}
	</style>
</head>
<body bgcolor="#ffff00">
	<div class="wrapper">
	  <div class="header">
		<h1>Header</h1>
        
        <button onclick='location.href="Auto.html"'>Auto</button>
        <button onclick='location.href="Auto1.html"'>Auto1</button>
        
	  </div>
	  <div class="main">
		<div class="box sidebar"></div>
		<div class="box content">
		  <iframe frameborder="0" marginwidth="0" marginheight="0" src="Auto.svg" id="AutoId"></iframe>
		</div>
		<div class="box sidebar"></div>
	  </div>
	  <div class="footer">Text. Text</div>
	</div>
	<script type="text/javascript" src="Auto.js"></script>
</body>
</html>

Мне необходимо получить размеры блоков div для классов main и box content.
Для main написал:
vpH = document.getElementsByClassName('main')[0].clientHeight;
vpW = document.getElementsByClassName('main')[0].clientWidth;

Все работает. Пытаюсь аналогичным образом получить размеры box content:
imgH = document.getElementsByClassName('box content')[0].clientHeight);
imgW = document.getElementsByClassName('box content')[0].clientWidth);

Ничего не выводит. Хотя видит object HTMLDivElement, если не использовать методы clientWidth/Height.

рони 20.06.2018 09:12

Цитата:

Сообщение от ioprst_
getElementsByClassName

поиск по классу, а не по классам
imgH = document.querySelectorAll('.box.content')[0].clientHeight

ioprst_ 20.06.2018 09:14

рони, спасибо!

ioprst_ 20.06.2018 09:17

рони, но почему-то работает только для clientHeight

ksa 20.06.2018 09:18

Цитата:

Сообщение от ioprst_
Пытаюсь аналогичным образом получить размеры box content:
imgH = document.getElementsByClassName('box content')[0].clientHeight);
imgW = document.getElementsByClassName('box content')[0].clientWidth);

Ничего не выводит

У тебя какие-то скобки не понятные... :blink:

Вот работающий вариант.
<div class="wrapper">
	  <div class="header">
		<h1>Header</h1>
        <button onclick='location.href="Auto.html"'>Auto</button>
        <button onclick='location.href="Auto1.html"'>Auto1</button>
	  </div>
	  <div class="main">
		<div class="box sidebar"></div>
		<div class="box content">
		  <iframe frameborder="0" marginwidth="0" marginheight="0" src="Auto.svg" id="AutoId"></iframe>
		</div>
		<div class="box sidebar"></div>
	  </div>
	  <div class="footer">Text. Text</div>
	</div>
<script type='text/javascript'>
var o=document.getElementsByClassName('box content')[0];
alert(o.clientHeight+' - '+o.clientWidth)
</script>

ksa 20.06.2018 09:20

Цитата:

Сообщение от рони
поиск по классу, а не по классам

В оригинале - поиск по строке, где классы разделены пробелом...
https://puzzleweb.ru/javascript/docu...yclassname.php

ioprst_ 20.06.2018 09:21

ksa, :lol: точно, не заметил, когда копипастил, а notepad не скажет) спасибо)

рони 20.06.2018 09:50

ksa,
ок


Часовой пояс GMT +3, время: 10:49.