Great Rash
Expert-
Posts
7,974 -
Joined
-
Last visited
-
Days Won
144
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Great Rash
-
Veseloff, не мудрите. npofopr дело говорит, надо просто создать лишний контейнер а уже относительно него позиционировать и блок с контентом и кнопку-крестик. Контент будет скроллится, а контейнер контента нет - вот и получится, что крестик будет всегда на месте стоять.
-
А вот и нет. Когда я работал над интранет-проектом (строили интерфейс), там было очень много генерируемого на клиенте контента, в частности там были огромные, изменяющиеся по ходу заполнения, формы. Была куча страниц которые генерились на сервере полностью или получали часть контента аяксом и для них приходилось генерить айдишники, чтобы потом элементы искать - это было очень не удобно. Знай я об этом методе раньше мне бы очень это пригодилось, кучу лишней работы делать бы не пришлось. Опять же сейчас (так для себя) делаю один проект в котором этот метод пришелся весьма кстати.
-
Ага, даже презираю Но дело не в этом. Таких сайтов миллион! Вбиваем в гугль "кошки" и видим, что таких сайтов видимо-невидимо. А значит ваш сайт, скорее всего, обречен либо на скорую смерть из-за отсутствия посетителей, либо на превращение в рекламную помойку (кстати зачатки этого видно уже сейчас). Вот на сайте Сами-знаете-кого есть изюминка , а ваша где? Где ваша я спрашиваю?
-
Азы Что такое семантика Валидатор Что такое Doctype Список Doctype'ов P.S. А вообще про "качественный сайт" и "уникальные тексты" вы реально загнули Я вам таких "уникальных" текстов нагенерю штук 20 за час работы - ни один яндекс не догадается. С самомнением у вас порядок
-
Мда... я бы не назвал это качественным сайтом. Для начала приведите верстку в порядок. Не удивительно, что ТИЦ у вас не растет. Обмен ссылками тут не причем. Где доктайп? Где семантика? Куча пустых элементов. Половина тегов не закрыта. Судя по тегу <html> у вас предполагается XHTML, но им там даже не пахнет! Все очень плохо.
-
Вот и я не знал что можно, поэтому начал экспериментировать. Лишние дивы ой как не хотелось создавать. А тут на такое красивое решение наткнулся, что вот спешу делиться с народом. Думаю у многих такая проблема возникала.
-
Интересно посмотреть на этот "качественный сайт".
-
У меня вот тут возникла довольно специфическая проблема - вставить контент, генерируемый скриптом, в определенное место на странице. Контент генерируется при помощи методов DOM createElement и appendChild поэтому вставить на странице его при помощи document.write не получится. Долго придумывал решение и наконец придумал такое: 1) назначаем скрипту id 2) в самом скрипте находим его же по id 3) вставляем нужный контент при помощи insertBefore Как это выглядит в коде: <body> <!-- задаем id скрипту --> <script type="text/javascript" id="script"> // ищем самого себя var self = document.getElementById('script'); // создаем тестовый элемент var test = document.createElement('div'); test.appendChild(document.createTextNode('я новый элемент!')); // вставляем новый элемент на место скрипта self.parentNode.insertBefore(test, self); </script> <div>какой-то элемент</div> </body> Все круто! Кроме того, что нужно скрипту задавать id, что не совсем удобно. Поэтому я начал гуглить в поисках более красивого решения... И я его нашел! Автором является некий Андрей Кузнецов: <head> ... <script type="text/javascript"> function thisElement() { var obj = document.documentElement; while (obj.lastChild) obj = obj.lastChild; return obj.parentNode; } </script> </head> <body> <script type="text/javascript" id="script"> // ищем самого себя var self = thisElement(); // создаем тестовый элемент var test = document.createElement('div'); test.appendChild(document.createTextNode('я новый элемент!')); // вставляем новый элемент на место скрипта self.parentNode.appendChild(test); </script> <div>какой-то элемент</div> </body> Вот ссылка на оригинал Есть правда одно ограничение, этот метод работает только один раз, т.е. вы не можете вызвать его два раза подряд в одной и той же функции. Но этот недостаток настолько мал, что можно считать что его и нет вовсе. Надеюсь вам это элегантное решение будет так же полезно как и мне.
-
Привязка radiobutton'а к текстовому полю ввода
Great Rash replied to Уасилий's question in HTML Coding
Используйте JavaScript -
http://2bsoft.ru/publications/articles/12/
-
«embed» на htmlbоok.ru
-
Назначаем обработчкики событий Вообще этот метод у меня самый короткий наверное, т.к. в моем интерфейсе кнопка всего одна Но если вы вдруг захотите после прочтения написать улучшенный вариант сапёра, то вам понадобится этот метод, чтобы назначать обработчики в одном месте. var MyMineSweeper = { init: function(o) { this.W = o ? o.W : 7; this.H = o ? o.H : 7; this.bombs = o ? o.bombs : Math.floor(this.W * this.H / 4); this.placedBombs = this.bombs; this.generateGUI(); }, generateGUI: function() { if (!this.game) { this.game = this.writeMainContainer(); this.gameCont = document.createElement('table'); this.gameCont.className = 'game-cont'; this.gameCont.insertRow(0); this.gameCont.insertRow(1); this.gameMenu = this.gameCont.rows[0].insertCell(0); this.gameMenu.rowSpan = 2; this.gameMenu.className = 'game-menu'; this.gameMenu.appendChild(document.createTextNode('Ширина поля:')); this.gameMenu.appendChild(document.createElement('br')); this.WInput = document.createElement('input'); this.WInput.type = 'text'; this.gameMenu.appendChild(this.WInput); this.gameMenu.appendChild(document.createTextNode('Высота поля:')); this.gameMenu.appendChild(document.createElement('br')); this.HInput = document.createElement('input'); this.HInput.type = 'text'; this.gameMenu.appendChild(this.HInput); this.gameMenu.appendChild(document.createTextNode('Кол-во мин:')); this.gameMenu.appendChild(document.createElement('br')); this.BInput = document.createElement('input'); this.BInput.type = 'text'; this.Init = document.createElement('input'); this.Init.type = 'button'; this.Init.value = 'Старт'; this.Init.className = 'game-start-button'; this.gameMenu.appendChild(this.BInput); this.gameMenu.appendChild(this.Init); this.gameStats = this.gameCont.rows[0].insertCell(1); this.gameField = this.gameCont.rows[1].insertCell(0); this.gameField.className = 'game-field'; this.game.appendChild(this.gameCont); } if (this.board) { this.board.parentNode.removeChild(this.board); this.board = null; } this.board = this.generateField(); this.board.cellSpacing = 0; this.board.className = 'game-board'; this.gameField.appendChild(this.board); this.gameStats.innerHTML = 'Новая игра: поле ' + this.W + 'x' + this.H + ', ' + this.bombs + 'мин'; this.setupEvents(); }, setupEvents: function() { var self = this; var buttonClick = function() { self.init({W: self.WInput.value, H: self.HInput.value, bombs: self.BInput.value}); } Event.add(this.Init, 'click', buttonClick); }, generateField: function() { var self = this; var table = document.createElement('table'); for (var i = 0; i < this.H; i++) { var r = table.insertRow(i); for (var j = 0; j < this.W; j++) { var c = r.insertCell(j); c.num = 0; c.index = [i, j]; c.clickHandler = function() { self.showInfo(this); } Event.add(c, 'click', c.clickHandler); } } do { var hNum = this.rand(0, this.H - 1); var wNum = this.rand(0, this.W - 1); if (!table.rows[hNum].cells[wNum].bomb) { table.rows[hNum].cells[wNum].num = null; table.rows[hNum].cells[wNum].bomb = true; this.placedBombs--; } } while (this.placedBombs > 0); for (var i = 0, len = table.rows.length; i < len; i++) { for (var j = 0, len2 = table.rows[i].cells.length; j < len2; j++) { if (table.rows[i].cells[j].bomb) { this.placeNumbers(table, j, i); } } } return table; }, placeNumbers: function(t, x, y) { if (x > 0) { t.rows[y].cells[x - 1].num++; } if (x < this.W - 1) { t.rows[y].cells[x + 1].num++; } if (x > 0 && y > 0) { t.rows[y - 1].cells[x - 1].num++; } if (y > 0) { t.rows[y - 1].cells[x].num++; } if (y > 0 && x < this.W - 1) { t.rows[y - 1].cells[x + 1].num++; } if (x > 0 && y < this.H - 1) { t.rows[y + 1].cells[x - 1].num++; } if (y < this.H - 1) { t.rows[y + 1].cells[x].num++; } if (x < this.W - 1 && y < this.H - 1) { t.rows[y + 1].cells[x + 1].num++; } }, writeMainContainer: function() { var html = '<div id="game" class="game"></div>'; document.writeln(html); return document.getElementById('game'); }, rand: function(min, max) { min = parseInt(min); max = parseInt(max); return Math.floor(Math.random() * (max - min + 1)) + min; } } Пока все. Продолжение будет. Все вопросы, предложения и прочее в приват. Не забываем про лесть
-
«javascript bbcode» в Google.
-
с дуру можно и пипиську сломать...
-
PS3 (если бы не новая прошивка), может спокойно заменить собой писюк, т.к. на нее можно (раньше можно было) поставить Линукс. С выходом новой прошивки эту возможность убрали (а жаль). Но все равно PS3 вполне способна заменить PC, особенно если комп используется в основном как медиацентр.
-
Зря вы так... 1) это сугубо ваши проблемы 2) гугль уже умеет индексировать, про остальные не знаю 3) это да 4) смотря чего туда понапихать, если все в векторе сделать, то будет летать.
-
Все зависит от шрифта, может нет такого символа, еще от браузера зависит. У меня к примеру в Хроме с шрифтом "Trebuchet MS" все прекрасно отображается.
-
Рекомендую заглянуть сюда Ваша проблема может решиться к примеру так: A²
-
Поддерживался бы он бы браузерами бы нативно... а так.. ну игрушки на нем сварганить, ну промо-сайт... не гэ конечно, но и не супер-пупер технология. Опять же с приходом HTML5 на большинстве сайтов необходимость во флеше отпадет. По ходу его ждет та же судьба что и java-апплеты.
-
Во-первых, не <script language="JavaScript">, а <script type="text/javascript">, во-вторых, объект event должен быть передан в функцию - function clickHandler(e), в-третьих, window.event не будет работать в Мозилле (странно что в Хроме работает) Опера и ИЕ - почти одинаковое гумно, поэтому там любой кривой код магическим образом работает....
-
Yotube там работает, это я как владелец PS3 вам говорю. Что наводит на мысль о том, что можно смело верстать как под Gecko/Webkit и быть уверенным, что не развалится.
-
Переношу во флейм, тут не обсуждаются работы, а помогают людям у которых затруднения.
-
Попробовал пинговать. При ShareNetwotking (NAT) пинг не проходит. При выставлении в опциях моей сетевухи пинг проходит, но когда пытаюсь вбить в браузер http://192.168.1.27 - пишет "страница не найдена". IP не менялся. Может ну его в попу этот virtual PC? Virtual Box работает с образами в формате .vhd?
-
Попробовал. Запустил виртуальную машину, открыл на редактирование файл hosts, прописал там 192.168.1.27 localhost somesite - не работает. Структура папок у меня такая: C://WebServers/home/localhost - это типа стартовая страница Денвера C://WebServers/home/somesite - стартовая страница моего сайта Пробовал писать в hosts вот так: 192.168.1.27 localhost 192.168.1.27 somesite тоже не работает.