html - CSS Accordion:超链接(a)不继承样式
问题描述
我试图让它工作:
body {
background-color: #c15236;
font-family: 'Arial';
padding: 2em 6em;
}
h1 {
color: #fff;
text-align: center;
}
/*--------Accordion-------*/
.acc-kontainer {
width: 100%;
margin: auto;
}
.acc-kontainer .acc-body {
width: 98%;
width: calc(100% - 20px);
margin: 0 auto;
height: 0;
color: rgba(0, 0, 0, 0);
;
background-color: rgba(255, 255, 255, 0.2);
line-height: 28px;
padding: 0 20px;
box-sizing: border-box;
transition: 0.5s;
}
.acc-kontainer label {
cursor: pointer;
background-color: rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
display: block;
padding: 15px;
width: 100%;
color: #fff;
font-weight: 400;
box-sizing: border-box;
z-index: 100;
}
.acc-kontainer input {
display: none;
}
.acc-kontainer label:before {
font-family: 'FontAwesome';
content: '\f067';
font-weight: bolder;
float: right;
}
.acc-kontainer input:checked+label {
background-color: rgba(255, 255, 255, 0.15);
}
.acc-kontainer input:checked+label:before {
font-family: 'FontAwesome';
content: '\f00d';
transition: 0.5s;
}
.acc-kontainer input:checked~.acc-body {
height: auto;
color: #fff;
font-size: 16px;
padding: 20px;
transition: 0.5s;
}
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
</head>
<body>
<h1>Pure HTML+CSS Accordion (Without Javascript)</h1>
<div class="acc-kontainer">
<div>
<input type="radio" name="acc" id="acc1" checked>
<label for="acc1"><i class="fa fa-map-marker"></i> My name?</label>
<div class="acc-body">
Hi, You can call me Dandi.<br><br>
<a href="https://www.google.com">Google</a>
</div>
</div>
<div>
<input type="radio" name="acc" id="acc2">
<label for="acc2"><i class="fa fa-heart"></i> What am I interesting for?</label>
<div class="acc-body">
All the thing about Technology! Informatic technology especially.
</div>
</div>
<div>
<input type="radio" name="acc" id="acc3">
<label for="acc3"><i class="fa fa-music"></i> What is my hobby?</label>
<div class="acc-body">
i love music <i class="fa fa-headphones"></i>, watching movie <i class="fa fa-film"></i>, Designing maybe <i class="fa fa-code"></i>
</div>
</div>
</div>
</body>
</html>
但是,当我向“答案”添加超链接时,它们会落在展开框之外。该<a>
元素在内部,<div>
但由于某种原因它仍位于 div 元素之外。
如果我为元素添加样式<a>
并让它继承所有内容,那么它会起作用。它继承了样式,但它仍然落在破坏这一切的 div 元素之外。
知道如何解决这个问题吗?
我需要它只与 CSS 一起使用。
解决方案
只需添加overflow: hidden;
到“封闭”手风琴样式 ( .acc-kontainer .acc-body
)。见下文。
body {
background-color: #c15236;
font-family: 'Arial';
padding: 2em 6em;
}
h1 {
color: #fff;
text-align: center;
}
/*--------Accordion-------*/
.acc-kontainer {
width: 100%;
margin: auto;
}
.acc-kontainer .acc-body {
width: 98%;
width: calc(100% - 20px);
margin: 0 auto;
height: 0;
color: rgba(0, 0, 0, 0);
;
background-color: rgba(255, 255, 255, 0.2);
line-height: 28px;
padding: 0 20px;
box-sizing: border-box;
transition: 0.5s;
overflow: hidden;
}
.acc-kontainer label {
cursor: pointer;
background-color: rgba(255, 255, 255, 0.1);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
display: block;
padding: 15px;
width: 100%;
color: #fff;
font-weight: 400;
box-sizing: border-box;
z-index: 100;
}
.acc-kontainer input {
display: none;
}
.acc-kontainer label:before {
font-family: 'FontAwesome';
content: '\f067';
font-weight: bolder;
float: right;
}
.acc-kontainer input:checked+label {
background-color: rgba(255, 255, 255, 0.15);
}
.acc-kontainer input:checked+label:before {
font-family: 'FontAwesome';
content: '\f00d';
transition: 0.5s;
}
.acc-kontainer input:checked~.acc-body {
height: auto;
color: #fff;
font-size: 16px;
padding: 20px;
transition: 0.5s;
}
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
</head>
<body>
<h1>Pure HTML+CSS Accordion (Without Javascript)</h1>
<div class="acc-kontainer">
<div>
<input type="radio" name="acc" id="acc1" checked>
<label for="acc1"><i class="fa fa-map-marker"></i> My name?</label>
<div class="acc-body">
Hi, You can call me Dandi.<br><br>
<a href="https://www.google.com">Google</a>
</div>
</div>
<div>
<input type="radio" name="acc" id="acc2">
<label for="acc2"><i class="fa fa-heart"></i> What am I interesting for?</label>
<div class="acc-body">
All the thing about Technology! Informatic technology especially.
</div>
</div>
<div>
<input type="radio" name="acc" id="acc3">
<label for="acc3"><i class="fa fa-music"></i> What is my hobby?</label>
<div class="acc-body">
i love music <i class="fa fa-headphones"></i>, watching movie <i class="fa fa-film"></i>, Designing maybe <i class="fa fa-code"></i>
</div>
</div>
</div>
</body>
</html>
推荐阅读
- javascript - Laravel 未捕获类型错误:无法读取 null 的属性“addEventListener”
- laravel - 现有用户的登录身份验证不适用于 laravel 中的现有和非现有用户
- java - JSP / JasperException:找不到文件 [/xyz.jsp]
- xml - 解析 XML 元素并仅将具有值的选定属性写入 yaml 文件
- android - 在tablayout中滚动recyclerView时隐藏Fragment中的工具栏
- javascript - 是的动态验证链
- javascript - 删除 ngFor 中的前 4 个字符
- ios - TableView 中的嵌套 collectionView
- amazon-web-services - AWS Cognito、AWS Amplify 和自定义范围?
- powershell - 在带有psreadline -EditMode VI的powershell中如何确保光标在浏览历史记录时从行尾开始