이 글에서는 CSS를 사용하여 구현한 멋진 드롭다운 상자를 소개합니다. 구현 후의 효과는 정말 좋습니다. 관심 있는 친구는 아래에서 살펴보세요. 봐.
먼저 달성할 렌더링을 살펴보겠습니다
그런 것을 만들어라. 효과는 여전히 번거롭지만, 코드는 이해하기 어렵지 않다.
먼저 HTML 코드를 살펴보겠습니다.
XML/HTML 코드클립보드에 콘텐츠 복사
<p class="컨테이너">
<p class="제목">
<h2>사용자 정의 선택h2> ;
p>
<p class="선택">
<p>선택하세요 p>
<
데이터 값="HTML5">HTML5li > <
데이터 값="CSS3">CSS3li >
li 데이터 값="JQuery">JQuery < /리>
ul> ;/ p>
p> ;
이 효과를 시뮬레이션하기 위해 기본 선택 요소를 사용하지 않고 다른 요소를 사용하는 것을 볼 수 있습니다. li 요소에 대해 data-value를 지정했는데, 그 이유는 주로 JQuery를 사용하여 선택한 값을 가져와서 p 요소 아래에 배치하기 때문입니다.
CSS 코드를 단계별로 살펴보겠습니다.
CSS 코드클립보드에 콘텐츠 복사
* {
여백: 0
패딩: 0;
: '터미널'
#33CC66
} 0으로 설정합니다. 2. 웹페이지의 기본 글꼴을 터미널로 설정하고 글꼴 크기를 62.5%(10px)로 설정합니다.
3. 배경색을 #33CC66으로 설정합니다.
<
링크 href='http://fonts.googleapis.com/css?family=Lobster|Terminal+Dosis'
'스타일시트' 유형='text/css'> 위에서는 터미널 글꼴을 사용했고 다음에도 Lobster 글꼴을 사용할 예정이므로 이 코드 줄을 사용하여 참조를 추가하세요. 1. 머리글을 지정하고 너비를 선택한 다음 가로 중심을 지정합니다. 2. 제목 너비를 주로 선택보다 넓게 만들고 더 아름답게 보이도록 수정합니다. 그런 다음 위쪽 및 아래쪽 여백을 지정합니다. 3. 제목 아래 h2 요소의 글꼴, 글꼴 크기, 색상을 설정합니다.
.select > , .select ul {
배경색: #ffffff
-반경: 5px ;
여백-하단: 0 ;
: 왼쪽;
: 1rem;
:
상대-
오른쪽-반경: 0; 🎜>
커서: 포인터
;색상: rgba(102, 102, 102, .6);
}
.select > p:after {
디스플레이: 차단;
너비: 10px;
높이: 10px;
콘텐츠: '';
위치: 절대;
상단: 1.4rem;
맞아맞아: 2rem;
테두리-하단: 1px 단색 #33CC66;
왼쪽 테두리: 1px 단색 #33CC66;
변환: 회전(-45deg);
전환: .3s ease-out, top .2s ease-out;
}
1、设置 p 와 ul 元素的背景颜color和边框等设置。
2、为 p元素单独指定样式,并设置其 position 属性,主要是为了下面绘右侧的下拉按钮。
3、利用 :after 在p 元素的右方绘官下拉按钮,可以看流来,我们是利用左下边框然后旋转 -45 도 模拟的这个效果。值得注意的是,我们需要将其 디스플레이 设置为 block,并且设置宽高,否将看不到 这个效果。
CSS 코드复system内容到剪贴板
.select ul {
여백 상단: 0;
테두리 상단-왼쪽-반경: 0;
테두리 상단-오른쪽오른쪽-반경: 0;
목록 스타일 유형: 없음;
커서: 포인터;
overflow-y: auto;
최대 높이: 0;
전환: 최대 높이 .3s ease-out;
}
.select ul li {
왼쪽 패딩: 0.5rem;
디스플레이: 차단;
줄 높이: 3rem;
텍스트 정렬: 왼쪽;
}
1、设置 ul 的一些默认属性,并将其设置最大宽島为 0,指定 Overflow-y 为 auto ,这个时候ul 将会被隐藏。
2、지금 这里设置的时候我遇到了一个问题,就是 li 标签始终·不满 ul 的一行,那是因为其默认에는 여백과 패딩이 있고 所以에는 一이 있습니다.开始的时候就将网页中所有元素的외부边距와内边距设置成了 0。
CSS 코드클립보드에 콘텐츠 복사
.select.open ul {
최대 높이: 20rem;
변환 원본: 50% 0 🎜>
-webkit- 애니메이션: 슬라이드 다운 0.5초 여유top: 1.6rem; : 회전(-225deg);
전환 : .3s이지인,}
이 드롭다운 효과의 핵심이기도 한 ul 요소에 지정된 슬라이드다운 애니메이션 효과를 살펴보겠습니다.
@-webkit- keyframes 슬라이드다운 {
변환: scale(1, 0);
: rgba(102, 153, 102, 0.4)
}
.select .selected {
배경색: rgba (102, 153, 102, 0.8);
제가 사용하는 BootCDN과 같은 CDN 서비스를 현재 많은 웹사이트에서 제공하고 있기 때문에 사용하기 위해 JQuery를 다운로드할 필요가 없습니다.
src=
"http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"XML/HTML 코드
<스크립트> $(문서).ready (함수 () { $('.select ul li').on("클릭", 함수(e) { var _this = $(this); $('.select >p').text(_this.attr(' 데이터-값')); $(_this).addClass('selected').siblings().removeClass('selected'); $ ( '. select'). ToggleClass ( 'Open'); ; $('.select cancelBubble(e); }); $(document).on('click', function () { $('.select').removeClass('open'); }) }) function cancelBubble(event) { if ( event.stopPropagation) { event.preventDefault(); event.stopPropagation(); } else { ; event.cancelBubble(); } } 1、首先为 p 标签绑定 click 事件,지금触发的时候,为 선택 添加或移除 오픈 클래스, 也就是将 ul 显示出来。2、为 li 绑定 click 事件,当选中了一个 li yuan素的时候,首先获取到 data-value,然后将其赋值给 p标签,然后为选中的 li添加 selected class,与此同时利用 siblings() 方法,让兄弟节点的 selected class 移除。3、为 document 设置click 当我们点击网页中任何一处地방법적인 방법, ul是打开的,就将其关闭,不过这个时候由于所有遠素tour는 document 内,所以我们需要阻止事件冒泡,调用自己写的 cancelBubble() 方法입니다. 总结
위 내용은 드롭다운 상자에서 멋진 특수 효과를 얻기 위해 CSS 기술을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!