- Выпадающий блок при нажатии на HTML + CSS
- Плавное открытие и скрытие элемента на CSS
- ZorNet.Ru
- На сайте найдете информацию по созданию сайта
- Вашему вниманию большая подборка HTML и CSS.
- Привет, здесь вы можете разместить, то что посчитаете нужным. Это скрипты и стили, что отлично подойдет для красивого и оригинального оформление интернет ресурса или блога.
- Как сделать чтоб при клике на кнопку появлялся div,при клике вне его чтоб закрывался?
Выпадающий блок при нажатии на HTML + CSS
Ранее также все решалось, то для этого обязательно подключали javascript, по при обновленном CSS3 все изменилось, и теперь все выстраивается на чистых стилях. Где нужно задать свойство под каждый элемент, которые будут выполнять свой заданный функционал. Плюс эта версия блока отличается от других, что при клике вы можете открыть любой раздел, как и на остальных, но также автоматически закрыть, для удобства все сделано отлично.
Такой блок можно увидеть на страницах, где идет очень много содержание по информации, и подключая развертывание блоков, вы сразу заметите, что место стало намного больше, что для удобства и восприятие нужно создавать все корректно и удобности для пользователя.
Так выглядит при проверке, где изменена палитра, также добавлены некоторые элементы для редактирование.
Приступаем к установке:
.gaonutosal <
float: left;
width: 37%;
padding: 0 1em;
>
.pesontedan <
position: relative;
margin-bottom: 1px;
width: 100%;
color: #f3f1f1;
overflow: hidden;
>
.pesontedan input <
position: absolute;
opacity: 0;
z-index: -1;
>
.pesontedan label <
position: relative;
display: block;
padding: 0 0 0 1em;
background: #1c3e5d;
line-height: 3;
cursor: pointer;
text-shadow: 0 1px 0 #333131;
font-size: 17px;
>
.pesontedan-content <
max-height: 0;
overflow: hidden;
background: #0d7b8e;
transition: max-height .40s;
font-size: 14px;
color: #fffdfd;
text-shadow: 0 1px 0 #292727;
>
.pesontedan-content <
background: #0f6f80;
>
.pesontedan-content p <
margin: 1em;
>
/* :checked */
.pesontedan input:checked ~ .pesontedan-content <
max-height: 100vh;
>
/* Icon */
.pesontedan label::after <
position: absolute;
right: 0;
top: 0;
display: block;
width: 3em;
height: 3em;
line-height: 3;
text-align: center;
-webkit-transition: all .40s;
-o-transition: all .40s;
transition: all .40s;
>
.pesontedan input[type=checkbox] + label::after <
content: «+»;
>
.pesontedan input[type=radio] + label::after <
content: «\25BC»;
>
.pesontedan input[type=checkbox]:checked + label::after <
transform: rotate(315deg);
>
.pesontedan input[type=radio]:checked + label::after <
transform: rotateX(180deg);
>
Сами заголовки идут по вверх, на цветовой гамме, которая задана в стилистике, где можно ее изменить под свой стиль дизайна. Также у вас появится возможность поставить скорость открывание, все отлично настраивается. Если установить больше трех разделов, то получится по виртуальности схоже как на навигацию.
Плавное открытие и скрытие элемента на CSS
Здесь самостоятельно можете выставить параметры, главное это появление и то, что можно очень много поместить в основе. Основу вы ставите по цветовой гамме под свой фон, а раскрытие здесь по умолчанию идет в темной гамме. Также вы можете задать эффект, который с помощью чистого CSS будет работать при открытие. Но главный плюс, это не требуют использования JavaScript для управления, так как все отлично выстроено на стилистике, где совершенно не будет не какой нагрузки на страницы интернет портала.
Расмотрим как будет смотрется после установки материала.
Это по умолчанию, где видна кнопка и ниже идет заголовок.
Здесь уже после нажатие на кнопку, где видим заголовок и небольшое описание.
Приступаем к установке:
ZorNet.Ru
На сайте найдете информацию по созданию сайта
Вашему вниманию большая подборка HTML и CSS.
Привет, здесь вы можете разместить, то что посчитаете нужным. Это скрипты и стили, что отлично подойдет для красивого и оригинального оформление интернет ресурса или блога.
* <
margin:0;
padding:0;
font-family:»Helvetica Neue», Helvetica, Sans-serif;
word-spacing:-2px;
>
h1 <
font-size:29px;
font-weight:bold;
color:#2f2e2e;
-webkit-font-smoothing: antialiased;
>
h2 <
font-weight:normal;
font-size:18px;
color:#867e7e;
padding:3px 0;
>
.lirdsanugsa <
background:#181818;
color:#FFF;
position: absolute;
top: -249px;
left: 0;
width: 100%;
height: 249px;
padding: 18px;
transition: top 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
overflow: hidden;
box-sizing: border-box;
.lirdsanugsa h1 <
color:#f9f4f4;
>
#sapimeglan_zornet <
position:absolute;
appearance:none;
cursor:pointer;
left:-100%;
top:-100%;
>
#sapimeglan_zornet + label <
position: absolute;
cursor: pointer;
padding: 10px;
background: #266eae;
width: 100px;
border-radius: 53px;
padding: 7px 9px;
color: #fdf9f9;
line-height: 19px;
font-size: 12px;
text-align: center;
-webkit-font-smoothing: antialiased;
cursor: pointer;
margin: 19px 48px;
transition: all 500ms ease;
>
#sapimeglan_zornet + label:after <
content:»Open»
>
.gukolpestud <
transition: margin 300ms cubic-bezier(0.17, 0.04, 0.03, 0.94);
padding:5em 3em;
>
#sapimeglan_zornet:checked ~ .lirdsanugsa <
top: 0;
>
#sapimeglan_zornet:checked ~ .gukolpestud <
margin-top: 250px;
>
#sapimeglan_zornet:checked + label <
background: #089e30;
>
#sapimeglan_zornet:checked + label:after <
content:»Close»
>
На этом все, также можно мосмотреть результат работы открытия и скрытия элемента.
Как сделать чтоб при клике на кнопку появлялся div,при клике вне его чтоб закрывался?
Есть кнопка, надо чтоб при клике на нее появлялась выпадашка, которая по умолчанию невидимая, а при клике вне открытой выпадашки чтоб эта выпадашка закрывалась. А при клике по самой выпадашке и ее дочерним элементам чтоб не закрывалась. Это форма, если сохранятся введенные значения — еще лучше.
Подскажите рабочий способ, который у вас точно работает, а то пробую уже разное, работает частично(toggle работает, прозрачность меняется, но то не закрывается при клике вне выпадашки, то становится видимым при клике на сам невидимый элемент, а не на кнопку). Или можно так открыть — закрыть всего один раз. Или то из-за большой вложенности.
Средний 1 комментарий
Обычно, если вы хотите добавить какую-то вещь, вам нужно полностью понимать её логику работы, чтобы это описать в коде. То есть, если вы можете описать весь функционал с помощью алгоритма, есть смысл самостоятельно это писать. В противном случае, лучше воспользоваться готовым решением, вроде Dropdowns или Modals из Bootstrap, потому что это поможет сэкономить время и обеспечит определённую надёжность работы за счёт использования дополнительных ресурсов (нужно подгружать CSS- и JS-файлы бутстрапа).
Самостоятельное понимание обычно приходит с опытом. То есть, например, если я хочу написать модал, я сначала должен понять, что такое этот мой модал и как он себя должен вести в различных ситуациях. По сути, это какой-то элемент, который выводится на переднем плане и блокирует всё остальное. То есть, мне нужно создать один полноэкранный элемент (1), который будет блокировать всё остальное, а потом поместить в него другой элемент (2), который будет отображать нужный мне контент. При клике по элементу 1 мне нужно скрывать оба элемента, освобождая всё, что находится на заднем плане. При этом, если я кликаю внутри элемента 2, ничего не должно происходить. Дальше, мне нужно показывать элементы 1 и 2 после определённого события, например, если я кликаю по кнопке (3).
Вот простейший код который работает как АК-47 (так же доступно на JsFiddle для тестирования):
Open modal Modal content
body < width: 100vw; height: 100vh; background-color: green; margin: 0; padding: 0; >#element-3 < border: 1px solid black; background-color: white; >#element-1 < display: none; position: fixed; background-color: blue; width: 100vw; height: 100vh; top: 0; left: 0; >#element-1.show < display: block; >#element-2
var element1 = document.getElementById('element-1'); var element2 = document.getElementById('element-2'); var element3 = document.getElementById('element-3'); element3.onclick = function() < element1.classList.add('show'); >; element1.onclick = function(event) < if (event.target !== event.currentTarget) < return; >element1.classList.remove('show'); >;
После того, как вы сделали стабильно работающий функционал, можно начать его развивать. Например, нужно сделать, чтобы элемент 1 был прозрачным. Или нужно сделать, чтобы он и элемент2 появлялись/исчезали, используя анимацию, а не мгновенно. Или нужно избавиться от этих красно-сине-зелёных цветов и отображать у элемента 2 закруглённые уголки и центрировать его по вертикали. Это уже задачи другого уровня, которые решаются другими методами, которые тоже можно разбить на подзадачи и решать их так, чтобы они не ломали задачи более высокого уровня. В таком случае у вас всегда всё будет работать надёжно и предсказуемо.
А ваш код я не видел, так что помочь ничем не могу. Причин, по которым происходят глюки, может быть много, и нужно быть телепатом, чтобы угадать, что именно происходит в вашей реализации кода. Но я видел много примеров, когда люди что-то делали, не понимая полностью логики явления, которое они разрабатывают. (Например, модальный диалог, или галлерею, или кнопку. Или космический корабль.) Из-за этого их код превращается в запутанный клубок, который глючит в самые неожиданные моменты.