關於錨點和label的純css內容切換
阿新 • • 發佈:2019-02-09
關於錨點的幾則
錨點跳轉就是根據url跳轉,做的一項定位
一般有兩種方法:
1. a標籤的name屬性
2. id
考慮每次使用a的name有點浪費標籤,所以建議使用id
程式碼塊
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>錨點</title>
<style>
.container{width: 850px;height: 880px;text-align : center;margin: 0 auto;}
.return{position: fixed;bottom: 50px;}
</style>
</head>
<body>
<div class="container">
<img src="http://maopeijiong.site/src/img/grimm.jpg" alt="格林獵人圖片一張" id="re"></img>
</div>
<a href="#re"><p class="return">返回至圖片</p ></a>
</body>
</html>
一些想法
注意到點選返回後的url變成了
url裡多了一個hash,是這麼叫的吧(反正chrome裡是location.hash這麼叫的)。所以這錨點跳轉可以看到一個連結跳轉,和點選滾動事件(jquery 的offset().top)還是有本質區別的,不過jquery跳轉平緩很多,錨點跳轉感官上不咋地。
純css實現的切換
錨點跳轉也算是css跳轉,突然想到用label的屬性實現的內容切換,就一併複習下。
程式碼塊
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>label切換內容</title>
<style>
.container{width: 800px;height: 250px;margin: 0 auto;position: relative;}
.tab{width: 25%;float: left;margin-right: -1px;box-sizing: border-box;}
.tab .testTabLabel{text-align: center;display: block;background: #e2e2e2;height: 24px;padding: 5px 0;border: 1px solid #ccc;}
.tab .test-radio, .tab .testTabCon{position: absolute;left: -999em;}
.test-radio:checked ~ .testTabLabel{border-bottom: 1px solid #fff;background: #fff;position: relative;z-index: 1;}
.test-radio:checked ~ .testTabCon{left: 0;border: 1px solid #ccc;border-top: 0;width: 763px;padding: 2em 1em;}
</style>
</head>
<body>
<div class="container">
<div class="tab">
<input type="radio" id="testTabOne" class="test-radio" name="tab" checked="checked"/>
<label class="testTabLabel" for="testTabOne">選項1</label>
<div class="testTabCon">
<p>第一張選項卡的內容</p>
</div>
</div>
<div class="tab">
<input type="radio" id="testTabTwo" class="test-radio" name="tab"/>
<label class="testTabLabel" for="testTabTwo">選項1</label>
<div class="testTabCon">
<p>第二張選項卡的內容</p>
</div>
</div>
<div class="tab">
<input type="radio" id="testTabThree" class="test-radio" name="tab"/>
<label class="testTabLabel" for="testTabThree">選項1</label>
<div class="testTabCon">
<p>第三張選項卡的內容</p>
</div>
</div>
<div class="tab">
<input type="radio" id="testTabFour" class="test-radio" name="tab"/>
<label class="testTabLabel" for="testTabFour">選項1</label>
<div class="testTabCon">
<p>第四張選項卡的內容</p>
</div>
</div>
</div>
</body>
</html>