按钮在IE中无法点击,但适用于现代浏览器

时间:2017-11-03 20:32:59

标签: html css internet-explorer cross-browser

在此处的示例中,带有“描述”文本的button.vertical-button__btn在所有浏览器中都可以浏览并且可以点击,但是IE。 (我在悬停时放置了一个CSS边框来说明这一点。你也可以看到按钮是否可以通过出现的'手'指针点击。)

警告: 当我说它在IE中无法点击时,我的意思是完整按钮文字(以黄色突出显示)不可点击。奇怪的是,button元素的最右边缘会按预期点击并悬停。

导致此行为的原因是什么?如何在IE中使功能与现代浏览器相同?

我只对支持IE 11和Edge感兴趣... IE 10及以下版本不需要支持。

修改 另一个奇怪的行为:如果我删除元素div.project__image按钮变为可点击,但我无法找出原因,我需要保留div元素。

.project {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
    padding: 20px;
    margin: 30px auto;
    width: 740px;
    height: 295px;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.3);
}
.project__image, .project__text {
    position: relative;
    width: 280px;
    max-width: 408px;
    height: 210px;
    display: inline-block;
    margin: 0 auto;
}
.project__text {
    height: 200px;
    padding: 20px 8px 20px 8px;
}

.vertical-button {
    width: 1px;
    height: 20px;
    background: #000;
    position: absolute;
    right: -100px;
    top: calc(50% - 10px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 1;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -ms-transition: 0.8s;
    -o-transition: 0.8s;
    transition: 0.8s;
}
.vertical-button__btn, 
.vertical-button__btn:focus, 
.vertical-button__btn:active {
    background: none;
    border: none;
    display: inline;
    font: inherit;
    margin: 0;
    padding: 0;
    outline: none;
    outline-offset: 0;
    position: absolute;
    top: 0px;
    transform-origin: left top;
    transform: rotate(90deg) translateX(-32%);
    float: right;
    padding: 5px;
    cursor: pointer;
    cursor: hand;
}
.vertical-button__btn:hover {
    border: 1px solid red;
}
.vertical-button__stroke {
    width: 1000px;
    height: 1px;
    background: #000;
}
<div class="project project--active">
    <div class="project__image">
        <a href="http://www.soupisgoodfood.com">
            <img class="image" alt="soupisgoodfood.com" src="img/hl.jpg">
        </a>
    </div>
    <div class="project__text">
        <h3 class="project__heading">Soup Overflow</h3>
        <p class="project__tagline">Soup Overflow, the creative agency of Vegetables</p>
        <ul>
            <li class="project__list-item">
                <a class="project__link" href="http://www.soupisgoodfood.com">View Flavors</a>
            </li>
            <li class="project__list-item project__button">
                <a class="project__link" href="">Description</a>
            </li>
        </ul>
        <div class="vertical-button">
            <button class="vertical-button__btn" style="background-color: yellow;">Description</button>
            <div class="vertical-button__stroke"></div>
        </div>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

我确实认为这是z-index的问题。 如果您向z-index: 200添加vertical-button,则该按钮即使在IE中也可以点击。

&#13;
&#13;
.project {
    -webkit-column-count: 2;
    -moz-column-count: 2;
    column-count: 2;
    padding: 20px;
    margin: 30px auto;
    width: 740px;
    height: 295px;
    box-shadow: 0px 4px 10px rgba(0,0,0,0.3);
}
.project__image, .project__text {
    position: relative;
    width: 280px;
    max-width: 408px;
    height: 210px;
    display: inline-block;
    margin: 0 auto;
}
.project__text {
    height: 200px;
    padding: 20px 8px 20px 8px;
}

.vertical-button {
    width: 1px;
    height: 20px;
    background: #000;
    position: absolute;
    right: -100px;
    top: calc(50% - 10px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    opacity: 1;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -ms-transition: 0.8s;
    -o-transition: 0.8s;
    transition: 0.8s;
z-index: 200
}
.vertical-button__btn, 
.vertical-button__btn:focus, 
.vertical-button__btn:active {
    background: none;
    border: none;
    display: inline;
    font: inherit;
    margin: 0;
    padding: 0;
    outline: none;
    outline-offset: 0;
    position: absolute;
    top: 0px;
    transform-origin: left top;
    transform: rotate(90deg) translateX(-32%);
    float: right;
    padding: 5px;
    cursor: pointer;
    cursor: hand;
}
.vertical-button__btn:hover {
    border: 1px solid red;
}
.vertical-button__stroke {
    width: 1000px;
    height: 1px;
    background: #000;
}
&#13;
<div class="project project--active">
    <div class="project__image">
        <a href="http://www.soupisgoodfood.com">
            <img class="image" alt="soupisgoodfood.com" src="img/hl.jpg">
        </a>
    </div>
    <div class="project__text">
        <h3 class="project__heading">Soup Overflow</h3>
        <p class="project__tagline">Soup Overflow, the creative agency of Vegetables</p>
        <ul>
            <li class="project__list-item">
                <a class="project__link" href="http://www.soupisgoodfood.com">View Flavors</a>
            </li>
            <li class="project__list-item project__button">
                <a class="project__link" href="">Description</a>
            </li>
        </ul>
        <div class="vertical-button">
            <button class="vertical-button__btn" style="background-color: yellow;">Description</button>
            <div class="vertical-button__stroke"></div>
        </div>
    </div>
</div>
&#13;
&#13;
&#13;