2016-02-22 56 views
0

我有以下HTML:錨定標記不可點擊,除非絕對定位?

@import url(https://fonts.googleapis.com/css?family=Roboto:400,300,400italic,500,700,900); 
 

 
/* global css */ 
 

 
body { 
 
    font-size: 16px; 
 
    font-family: 'Roboto', sans-serif; 
 
    color: #fff; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.col-md-4 { 
 
    width: 33.33%; 
 
    float: left; 
 
} 
 
.info-boxes { 
 
    display: block; 
 
    position: relative; 
 
    background: #7accc8; 
 
    padding: 2em 0; 
 
    overflow: hidden; 
 
    text-align: center; 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
} 
 
.info-boxes h5 { 
 
    font-size: 30px; 
 
    margin: 0; 
 
    text-transform: uppercase; 
 
    font-weight: 700; 
 
} 
 
.info-boxes p { 
 
    margin: 0.5em 0; 
 
} 
 
.info-boxes h5, 
 
.info-boxes p { 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
    -webkit-transform: translateY(50%); 
 
    -ms-transform: translateY(50%); 
 
    -o-transform: translateY(50%); 
 
    transform: translateY(50%); 
 
} 
 
.info-boxes:hover h5, 
 
.info-boxes:hover p { 
 
    -webkit-transform: translateY(0); 
 
    -ms-transform: translateY(0); 
 
    -o-transform: translateY(0); 
 
    transform: translateY(0); 
 
} 
 
.info-boxes span { 
 
    display: inline-block; 
 
    font-weight: 700; 
 
    position: relative; 
 
    /* \t position: absolute; 
 
    \t bottom: 0; 
 
    \t left: 0; 
 
    \t right: 0; 
 
    */ 
 
    /*left: 50%; 
 
    \t -webkit-transform: translateX(-50%); 
 
    \t -ms-transform: translateX(-50%); 
 
    \t -o-transform: translateX(-50%); 
 
    \t transform: translateX(-50%);*/ 
 
    -webkit-transform: translateY(100px); 
 
    -ms-transform: translateY(100px); 
 
    -o-transform: translateY(100px); 
 
    transform: translateY(100px); 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
} 
 
.info-boxes:hover { 
 
    background: #f5989d; 
 
} 
 
.info-boxes:hover span { 
 
    -webkit-transform: translateY(0); 
 
    -ms-transform: translateY(0); 
 
    -o-transform: translateY(0); 
 
    transform: translateY(0); 
 
} 
 
.info-boxes span:before, 
 
.info-boxes span:after { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 50%; 
 
    right: 50%; 
 
    width: 100%; 
 
    height: 1px; 
 
    background: #fff; 
 
    /*-webkit-transform: translateY(-50%); 
 
    \t -ms-transform: translateY(-50%); 
 
    \t -o-transform: translateY(-50%); 
 
    \t transform: translateY(-50%);*/ 
 
    -webkit-transition: all .3s ease .2s; 
 
    -o-transition: all .3s ease .2s; 
 
    transition: all .3s ease .2s; 
 
    opacity: 0 
 
} 
 
.info-boxes span:after { 
 
    right: initial; 
 
    left: 50%; 
 
} 
 
.info-boxes:hover span:after, 
 
.info-boxes:focus span:after, 
 
.info-boxes:active span:after { 
 
    left: calc(100% + 10px); 
 
    opacity: 1; 
 
} 
 
.info-boxes:hover span:before, 
 
.info-boxes:focus span:before, 
 
.info-boxes:active span:before { 
 
    right: calc(100% + 10px); 
 
    opacity: 1; 
 
}
<a class="info-boxes"> 
 
    <h5>2200AED</h5> 
 
    <p>5 Private Sessions/Validity: 2 Months</p> 
 
    <span>Online Booking</span> 
 
</a>

現在爲什麼是一個不錨更多I.E.我無法再點擊<a>,爲什麼?現在

的一個解決方案,我發現這是該容器更改爲div標籤和內部有一個a並應用以下樣式是:

.info-boxes a { 
    position: absolute; 
    left: 0; 
    right: 0; 
    bottom: 0; 
    top: 0; 
    z-index: 99; 
} 

但是,這是一個「爲什麼」的問題不是「如何解決這個問題」的問題。

所以我想問的是爲什麼<a>標籤不像一個在這個給定的例子?

回答

2

你需要添加href否則,如果您使用的不是href則認爲只是一個佔位符超鏈接a將無法​​點擊

,多看看這裏W3C

@import url(https://fonts.googleapis.com/css?family=Roboto:400,300,400italic,500,700,900); 
 

 
/* global css */ 
 

 
body { 
 
    font-size: 16px; 
 
    font-family: 'Roboto', sans-serif; 
 
    color: #fff; 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 
.col-md-4 { 
 
    width: 33.33%; 
 
    float: left; 
 
} 
 
.info-boxes { 
 
    display: block; 
 
    position: relative; 
 
    background: #7accc8; 
 
    padding: 2em 0; 
 
    overflow: hidden; 
 
    text-align: center; 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
} 
 
.info-boxes h5 { 
 
    font-size: 30px; 
 
    margin: 0; 
 
    text-transform: uppercase; 
 
    font-weight: 700; 
 
} 
 
.info-boxes p { 
 
    margin: 0.5em 0; 
 
} 
 
.info-boxes h5, 
 
.info-boxes p { 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
    -webkit-transform: translateY(50%); 
 
    -ms-transform: translateY(50%); 
 
    -o-transform: translateY(50%); 
 
    transform: translateY(50%); 
 
} 
 
.info-boxes:hover h5, 
 
.info-boxes:hover p { 
 
    -webkit-transform: translateY(0); 
 
    -ms-transform: translateY(0); 
 
    -o-transform: translateY(0); 
 
    transform: translateY(0); 
 
} 
 
.info-boxes span { 
 
    display: inline-block; 
 
    font-weight: 700; 
 
    position: relative; 
 
    /* \t position: absolute; 
 
    \t bottom: 0; 
 
    \t left: 0; 
 
    \t right: 0; 
 
    */ 
 
    /*left: 50%; 
 
    \t -webkit-transform: translateX(-50%); 
 
    \t -ms-transform: translateX(-50%); 
 
    \t -o-transform: translateX(-50%); 
 
    \t transform: translateX(-50%);*/ 
 
    -webkit-transform: translateY(100px); 
 
    -ms-transform: translateY(100px); 
 
    -o-transform: translateY(100px); 
 
    transform: translateY(100px); 
 
    -webkit-transition: all .3s; 
 
    -o-transition: all .3s; 
 
    transition: all .3s; 
 
} 
 
.info-boxes:hover { 
 
    background: #f5989d; 
 
} 
 
.info-boxes:hover span { 
 
    -webkit-transform: translateY(0); 
 
    -ms-transform: translateY(0); 
 
    -o-transform: translateY(0); 
 
    transform: translateY(0); 
 
} 
 
.info-boxes span:before, 
 
.info-boxes span:after { 
 
    content: ''; 
 
    position: absolute; 
 
    top: 50%; 
 
    right: 50%; 
 
    width: 100%; 
 
    height: 1px; 
 
    background: #fff; 
 
    /*-webkit-transform: translateY(-50%); 
 
    \t -ms-transform: translateY(-50%); 
 
    \t -o-transform: translateY(-50%); 
 
    \t transform: translateY(-50%);*/ 
 
    -webkit-transition: all .3s ease .2s; 
 
    -o-transition: all .3s ease .2s; 
 
    transition: all .3s ease .2s; 
 
    opacity: 0 
 
} 
 
.info-boxes span:after { 
 
    right: initial; 
 
    left: 50%; 
 
} 
 
.info-boxes:hover span:after, 
 
.info-boxes:focus span:after, 
 
.info-boxes:active span:after { 
 
    left: calc(100% + 10px); 
 
    opacity: 1; 
 
} 
 
.info-boxes:hover span:before, 
 
.info-boxes:focus span:before, 
 
.info-boxes:active span:before { 
 
    right: calc(100% + 10px); 
 
    opacity: 1; 
 
}
<a href="#" class="info-boxes"> 
 
    <h5>2200AED</h5> 
 
    <p>5 Private Sessions/Validity: 2 Months</p> 
 
    <span>Online Booking</span> 
 
</a>

0

這可能是a沒有href。我不知道這是否也在原始代碼中,但似乎解決了這個問題。

當我添加你的代碼,這顯然解決了它,它不適合我,所以我認爲你在改變HTML時添加了一個href。

1

一個可能的答案,因爲您沒有指定是要轉到另一個頁面還是隻在clic時做某件事國王。

您應該改用button標記。爲什麼?那麼,如果通過指定href屬性轉到頁面,則應該使用錨鏈接<a>。如果它是可點擊的,則必須執行某些操作,但不會轉到其他頁面,而應使用button標記。