效果演示


實現原理
- 使用3個div(一個是頂部欄,一個是左側欄,一個是右側欄);
- 使用checkbox作為判斷是否顯示和隱藏右側欄,點擊顯示和隱藏label實現最終效果。
代碼說明
css
<style>
body {
font-family:"Microsoft YaHei",arial,sans-serif;
margin: 0px;
padding: 0px;
color: #666;
}
ul {
margin:0;
padding:0;
list-style-type:none;
}
.topPanel{
position: fixed;
top: 0px;
left: 0px;
height: 30px;
width: 100%;
border-top: 1px solid #e0e0e0;
border-bottom: 1px solid #e0e0e0;
background: #F0FFFF;
}
.topPanel div{
display: inline-block;
padding: 3px 20px 0px 3px;
height: 27px;
}
.splitPanel{
position: fixed;
top: 49%;
width: 15px;
height: 50px;
right: 301px;
background: #1E90FF;
cursor: pointer;
border-top-left-radius: 10px;
border-bottom-left-radius: 10px;
z-index: 9999;
}
.showHideRightPanelChk {
display: none;
}
.showHideRightPanelChk:checked ~ .rightPanel {
display: none;
}
.showHideRightPanelChk:checked ~ .splitPanel {
right: 0px;
background: #FFC125;
}
.showHideRightPanelChk:checked ~ .splitPanel label{
right: 0px;
}
.showHideRightPanelChk:checked ~ .splitPanel label:nth-child(1){
margin: 20px 0px 0px 6px;
transform: rotate(315deg);
-webkit-transition:1s all ease;
transition:1s all ease;
}
.showHideRightPanelChk:checked ~ .contentPanel {
right: 0px;
}
.splitMark{
margin: 20px 0px 0px 3px;
width: 5px;
height: 5px;
border-top: 2px #fff solid;
border-left: 2px #fff solid;
transform: rotate(135deg);
display: inline-block;
-webkit-transition:1s all ease;
transition:1s all ease;
}
.splitBorder{
position: fixed;
top: 49%;
width: 15px;
height: 50px;
right: 301px;
}
.rightPanel{
position: fixed;
top: 31px;
right: 0px;
width: 299px;
bottom: 1px;
border-left: 1px solid #e0e0e0;
padding: 1px 1px 1px 1px;
}
.rightPanel div{
display: inline-block;
margin: 0px 0px 14px 0px;
}
.contentPanel{
position: fixed;
top: 32px;
left: 0px;
right: 301px;
bottom: 1px;
width: auto;
background: #FFFFF0;
}
</style>
- 設置了頂部div,height為30px,width為100%,底部有邊框的效果;
- 設置了左側div,top為32px,距離右側301px,距離底部1px,width為auto的效果;
- 設置了右側div,top為31px,width為300px,距離底部1px,左側有邊框的效果;
- 設置了用於點擊切換效果的區域,top為49%,width為15px,height為50px,距離右側301px,同時設置左上及左下為圓角效果;
- 設置用於標識右側div顯示和隱藏效果的樣式。
html
<div> <input id="showHideRightPanel" class="showHideRightPanelChk" type="checkbox"> <div class="topPanel"> <div>Top panel</div> </div> <div class="contentPanel"> <div>Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content Content </div> </div> <div class="splitPanel"> <label for="showHideRightPanel" class="splitMark"></label> <label for="showHideRightPanel" class="splitBorder"></label> </div> <div class="rightPanel"> <div> <ul> <li>Right panel</li> </ul> </div> </div> </div>
運行后,就可以看見效果了。
