Нужен javascript (вопрос спецам)

123
Olldman
На сайте с 21.04.2010
Offline
79
#11

Ок, минуту, выложу на сервер.

http://realtsib.ru/oldman/test-one_two/index.html - на этой странице все три элемента, а на второй(ссылка в Heading 2) только два, где нужно header 2 растянуть на 66%.

R
На сайте с 06.02.2011
Offline
62
#12
Varenik:
getElementsByClassName не является кросбраузерным, поэтому мудрить нужно🙅

http://msdn.microsoft.com/en-us/library/ie/ff975198(v=vs.85).aspx

http://caniuse.com/getelementsbyclassname

V
На сайте с 10.01.2012
Offline
85
#13

Сами себе и ответили. IE 8 хоть и отживает свое, но им еще пользуется не малая доля пользователей.

Или вы считаете что вместо 1-й строчки прописав 2 ради поддержки 8-го осла это сильно мудрено? Давайте здраво смотреть на ситуацию.

Вот как раз из за таких мелочей мы и получаем кучу шлаковых сайтов с "уникальным дизайном и структурой" - уникальных в каждом браузере

R
На сайте с 06.02.2011
Offline
62
#14
Varenik:
Сами себе и ответили. IE 8 хоть и отживает свое, но им еще пользуется не малаю доля пользователей.

Или вы считаете что вместо 1-й строчки прописав 2 ради поддержки 8-го осла это сильно мудрено? Давайте здраво смотреть на ситуацию.

Вот как раз из за таких мелочей мы и получатм кучу шлаковых сайтов с "уникальным дизайном и структурой" - уникальных в каждом браузере

менее 8% IE8

http://gs.statcounter.com/#browser_version-ww-monthly-201208-201308

вы до сих пор будете упорствовать ?

---------- Добавлено 23.09.2013 в 13:28 ----------

Olldman:
Ок, минуту, выложу на сервер.
http://realtsib.ru/oldman/test-one_two/index.html - на этой странице все три элемента, а на второй(ссылка в Heading 2) только два, где нужно header 2 растянуть на 66%.

у Вас идут разные классы

<div class="first">

<div class="two">

...

может имеет смысл добавить нулевой якорный класс, скажем так

.herecountclass {}

и прописать соответственно в нагрузку к Вашим дивам

<div class="first herecountclass">

<div class="two herecountclass">

тогда не надо заморачиваться какой класс first или four

а просто получить количество сразу же

document.getElementsByClassName('herecountclass').length

и все, если менее 3 то играйтесь стилями

if(document.getElementsByClassName('herecountclass').length < 3){

document.getElementsByClassName('herecountclass')[1].style.width = "66%";

}

V
На сайте с 10.01.2012
Offline
85
#15
RControl:
менее 8% IE8
http://gs.statcounter.com/#browser_version-ww-monthly-201208-201308

вы до сих пор будете упорствовать ?

Я не упорствую. Если у вас какой-то варезник - то и фиг с этими 8%, а если продажник какого-то оборудования стоимостью 100к? Не вникали в демографию? львиная доля состоявшихся людей на которых как раз и направлена аудитория подобных сайтов сидят как раз на устаревших версиях браузеров и не меняют их в силу привычки. Так что давайте не будем об этом, если не вникали в данный вопрос. Все солидные продажники до сих пор стараются делать чтобы корректно работали и в 7-м.

Дискусия зашла далеко и не по теме. Есть желание обсуждать - в личку.

---------- Добавлено 23.09.2013 в 13:32 ----------

Olldman, А для чего вам нужна проверка на отсутствие колонки? после загрузки страницы она может удаляться/скрываться? если нет, то проще стилями это сделать

Olldman
На сайте с 21.04.2010
Offline
79
#16
Varenik:
Olldman, А для чего вам нужна проверка на отсутствие колонки? после загрузки страницы она может удаляться/скрываться? если нет, то проще стилями это сделать

В системе в левой(правой) колонках может не быть отображаемой информации и в этом случае нужно растянуть центральную колонку на 100%. Либо, если есть инфа(читай - элементы) в правой(левой) колонке, то центральная занимает пространство отсутствующей колонки.

Таблица в этом плане удобна, но не отвечает правилам семантики.

В принципе, программно(php) я могу тупо применить три шаблона, подключая их в зависимости от того, есть ли элементы в колонках, или нет. Но хотелось бы использовать один шаблон.

V
На сайте с 10.01.2012
Offline
85
#17

Ну так эту же проверку вы можете сделать и на php - что более рационально

Olldman
На сайте с 21.04.2010
Offline
79
#18

RControl - спасибо, получилось. Буду пытать дальше.

J
На сайте с 21.08.2011
Offline
78
#19

Или я чего-то не понял, или тут перемудрили всё слишком, когда можно делать так с JQuery:

$(document).ready(function() {
var count = 0;
// каждый div должен имееть класс "column"
$('div.column').each(function(){
count += 1;
});
if (count === 1) {
$('div.column').css({'width':'100%'});
}
if (count === 2) {
// first / last можно поменять местами -- по вкусу
$('div.column').first().css({'width':'66%'});
$('div.column').last().css({'width':'33%'});
}
if (count === 3) {
$('div.column').css({'width':'33%'});
}
});
C
На сайте с 04.02.2005
Offline
291
#20

	$('div.column').each(function(){

count += 1;
});

Бред

count = $('div.column').length

Если хотели использовать count, то его нужно было объявить

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий