Отображение скрытого блока в chrome extension
Я делаю небольшое расширение для chrome . По задумке у меня в popup.html два блока и кнопка . Один из них основной и виден . Второй , с дополнительной инфой , скрыт . Если нажимать на кнопку он появляется и исчезает .
Если скрытый блок находится под основным проблем вроде бы нет . Но если я пытаюсь отобразить его слева от основного получается лесница . ![]() Ни через table-cell и float:left решить не удалось . Как я подозреваю , проблема в размере окна. Однако если задать его изначально больше двух блоков ничего не меняется :( Собственно код расширения . popup.html <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="content-type"> <link rel="stylesheet" href="style.css"> </head> <body> <div class="basiccontainer"> Основной контейнер <div id="imsg"></div> </div> <div class="button-block"> <a class="vbutton" id="hiding_btn">Кнопка</a> </div> <div class="hiddencontainer" id="hidden_text"> Скрытый контейнер </div> <script src="functions.js"></script> </html> style.css .basiccontainer { margin:10px; width:300px; height:220px; border:solid black 1px; text-align: center; float:left; } .hiddencontainer { margin:10px; width:300px; height:200px; text-align: center; border:solid black 1px; float:left } .vbutton { width:30px; background: #2E8CE3; /* Цвет фона */ padding: 20px 10px; /* Поля вокруг текста */ margin: 10px; font-size: 13px; /* Размер шрифта */ font-weight: bold; /* Насыщенность шрифта */ color: #FFFFFF; /* Цвет шрифта */ text-align: center; /* Надпись на кнопке по центру */ border: solid 1px #73C8F0; /* Параметры рамки кнопки */ cursor: pointer; /* Изменение вида курсора при наведении*/ writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; } .button-block { float:left; } functions.js function infoButton() { var msg = document.getElementById("imsg"); var hidden_block = document.getElementById("hidden_text"); var info_btn = document.getElementById("hiding_btn"); imsg.innerText = "Clicked"; if(info_btn) { if(localStorage["hidden_info"]) { localStorage.removeItem("hidden_info"); hidden_block.style.display="none"; imsg.innerText = "Hide"; } else { imsg.innerText = "Show"; localStorage.setItem("hidden_info",1); hidden_block.style.display="block"; } } } function addWindowCallbacks() { var info_btn = document.getElementById("hiding_btn"); if(info_btn) { info_btn.addEventListener("click", infoButton , false); } } document.addEventListener('DOMContentLoaded', addWindowCallbacks,false); Архив c плагином : http://my-files.ru/pyh86k Надеюсь на помощь . |
SmilingDog,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> body, html{ display: table-row; } .basiccontainer { margin:10px; width:300px; height:220px; border:solid black 1px; text-align: center; display: table-cell; } .hiddencontainer { margin:10px; width:300px; height:200px; text-align: center; border:solid black 1px; display: table-cell; } .vbutton { width:30px; background: #2E8CE3; /* Цвет фона */ padding: 20px 10px; /* Поля вокруг текста */ margin: 10px; font-size: 13px; /* Размер шрифта */ font-weight: bold; /* Насыщенность шрифта */ color: #FFFFFF; /* Цвет шрифта */ text-align: center; /* Надпись на кнопке по центру */ border: solid 1px #73C8F0; /* Параметры рамки кнопки */ cursor: pointer; /* Изменение вида курсора при наведении*/ writing-mode: tb-rl; -webkit-writing-mode: vertical-rl; display: inline-block; } .button-block { display: table-cell; } </style> </head> <body> <div class="hiddencontainer" id="hidden_text"> Скрытый контейнер </div> <div class="button-block"> <a class="vbutton" id="hiding_btn">Кнопка</a> </div> <div class="basiccontainer"> Основной контейнер <div id="imsg"></div> </div> <script> function infoButton() { var msg = document.getElementById("imsg"); var hidden_block = document.getElementById("hidden_text"); var info_btn = document.getElementById("hiding_btn"); imsg.innerText = "Clicked"; if(info_btn) { if(localStorage["hidden_info"]) { localStorage.removeItem("hidden_info"); hidden_block.style.display="none"; imsg.innerText = "Hide"; } else { imsg.innerText = "Show"; localStorage.setItem("hidden_info",1); hidden_block.style.display="table-cell"; } } } function addWindowCallbacks() { var info_btn = document.getElementById("hiding_btn"); if(info_btn) { info_btn.addEventListener("click", infoButton , false); } } document.addEventListener('DOMContentLoaded', addWindowCallbacks,false); </script> </body> </html> |
Большое спасибо :)
Теперь все действительно работает как я хотел . Правда при этом , по неизвестной причине , игнорируется ширина блоков . И выглядит все как-то так : ![]() Однако(!) если добавить внутрь существующих блоков вложенные блоки с указанием ширины - все функционирует совершенно как надо <div class="hiddencontainer" id="hidden_text"> <div style="width:300px;height:200px;"> Скрытый контейнер </div> </div> <div class="button-block"> <a class="vbutton" id="hiding_btn">Кнопка</a> </div> <div class="basiccontainer"> <div style="width:300px;height:200px;"> Основной контейнер <div id="imsg"></div> </div> </div> Наберусь еще наглости спросить : можно ли в принципе получить эффект выдвижения скрытого блока из основного . Т е получить эффект выпадающих вкладок , только не внутрь окна , а наружу ? Сам код мне не нужен , только примерное направление . |
Цитата:
Цитата:
один блок над другим - left верхнего увеличиваем - нижний стоит на месте - но как бы "выезжает" 2 способ ширина скрытого 0 overflow: hidden; - увеличиваем ширину |
Часовой пояс GMT +3, время: 05:01. |