- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
重要提示:仅 CSS/HTML,但不是 javascript(客户端不允许)
最近开始做我网站的主页,想做一个居中划分的布局。想把 logo 放在中间,上面放一张图片带按钮跳转到页面,下面放一张同样的功能。
动画应该是悬停在按钮(或它周围定义的区域)上,就像我在这里做的一样: GIF ANIMATION OF WHAT IS INTENDED
类似于预期的内容:https://jsfiddle.net/vja85zgL/
* {
margin: 0px;
padding: 0px;
}
#wrapper {
width: 80%;
height: 200px;
margin: auto;
}
#wrapper:hover #left:not(:hover) {
width: 25%;
transition: width 1s linear;
}
#wrapper:hover #right:not(:hover) {
width: 25%;
transition: width 1s linear;
}
#left {
width: 50%;
height: 100%;
background-color: lightblue;
display: inline-block;
position: relative;
transition: width 1s linear;
}
#innerleft {
position: absolute;
top: 100px;
width: calc(100% - 4px);
text-align: center;
border: 2px solid black;
}
#right {
width: 50%;
height: 100%;
background-color: lightgrey;
display: inline-block;
position: relative;
transition: width 1s linear;
}
#innerright {
position: absolute;
top: 100px;
width: calc(100% - 4px);
text-align: center;
border: 2px solid black;
}
#right:hover {
width: 75%;
transition: width 1s linear;
}
#left:hover {
width: 75%;
transition: width 1s linear;
}
<div id="wrapper">
<div id="left">
<div id="innerleft">
TITLE 1
</div>
</div><div id="right">
<div id="innerright">
TITLE 2
</div>
</div>
</div>
如上所示,如果将鼠标悬停在按钮上,按钮后面的背景图像会“完全”显示(没有重新缩放), Logo (显示为 B)向下移动到 25%,并且未悬停的按钮会缩小尺寸和字体大小和它后面的图像在用户无法正确看到的地方滑动到它下面(用户无法通过向下滚动看到它)。
如果悬停在另一个按钮上,动画将转到另一个按钮和图像背景。
在布局回到起始位置之前应该有 2 秒的延迟
详情:
过去 2 天我一直在思考如何去做,因为我是 CSS
的初学者,但还没有找到方法。
如有任何帮助,我们将不胜感激!
已对设计完成的可用代码(一团糟...):
#business-top {
height:50%
width:100%
}
#business-button {
height:3em;
width:12em;
background-color:#2B2A2A;
border: .2em solid #ff7600;
border-radius:1.8em;
margin:auto;
margin-top:3em;
}
#logo-separator {
text-align:center;
}
.separator {
display: block;
position: relative;
padding: 0;
height: 0;
width: 100%;
max-height: 0;
font-size: 1px;
line-height: 0;
clear: both;
border: none;
border-top: 1px solid #ff7600;
border-bottom: 1px solid #ff7600;
}
#logo {
margin:auto;
max-width:150px;
display:inline-block;
overflow:hidden
margin-top:-75px
}
#photography-bottom {
height:50%
width:100%
}
#photography-button {
height:3em;
width:12em;
background-color:#2B2A2A;
border: .2em solid #ff7600;
border-radius:1.8em;
margin:auto;
margin-top:3em;
}
h1 {
color:#ff7600;
text-align:center;
font-size:1.4em;
vertical-align:middle;
line-height:2.2em
}
<div id="business-top"
<a href="www.lluisballbe.smugmug.com">
<div id="business-button">
<h1>BUSINESS</h1>
</div>
</a>
</div>
<div id="logo-separator">
<div class="separator"></div>
<div id="logo"><img src="https://lluisballbe.smugmug.com/Assets-for-website/i-CsMnM3R/0/Th/800x800-round-Th.png"</div>
</div>
<div id="photography-bottom"
<a href="www.lluisballbe.smugmug.com">
<div id="photography-button">
<h1>PHOTOGRAPHY</h1>
</div>
</a>
</div>
最佳答案
如果你在悬停后增加按钮的面积,那么你可能只在 CSS 中得到一些结果:
trick comes from pointer-events and pseudo to increase hoverable area
/* tricky part */
div {
width: 100%;
pointer-events: none;
overflow: hidden;
transition: 1.5s;
}
div:hover {/* will be catch by child with pointer-events auto */
flex: 3;
}
div:first-child {
background: turquoise;
}
div a {
pointer-events: auto;/* if a is hovered, so is its parent */
position: relative;/* this could be for the div parent if you want to cover its area */
padding: 5px;
border-radius: 0.25em;
border: 3px solid;
box-shadow: 2px 2px 5px;
color: #222;
background: #aaa;
}
div a:hover:before {/* increase size of button only once hovered */
content: '';
position: absolute;
top: -200px;/* coordonates used to increase pseudo size from its relative position parent. tune to your needs */
bottom: -200px;
width: 100%;
}
/* layout */
body,
div {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
div {
flex: 1;
}
hr {
width: 100%;
height: 5px;
background: red;
text-align: center;
}
hr:before {
content: url(http://dummyimage.com/50x50);
display: inline-block;
height: 50px;
border-radius: 50%;
overflow: hidden;
margin-top: -25px;
}
html,
body {
height: 100%;
width: 100%;
margin: 0;
}
<div>
<a href="#"> button style</a>
</div>
<hr/>
<div>
<a href="#"> button style</a>
</div>
来自您的更新片段:
html,
body {
height: 100%;
width: 100%;
margin: 0;
}
body {
display: flex;
flex-direction: column;
}
h1 {
margin: 0;
}
a {
display: inline-block;
}
#business-top {
display: flex;
flex: 1;
width: 100%;
align-items: center;
justify-content: center;
text-align: center;
}
#business-button {
height: 3em;
width: 12em;
background-color: #2B2A2A;
border: .2em solid #ff7600;
border-radius: 1.8em;
margin: auto;
}
#logo-separator {
text-align: center;
}
.separator {
display: block;
position: relative;
padding: 0;
height: 0;
width: 100%;
max-height: 0;
font-size: 1px;
line-height: 0;
flex: 0;
border-top: 1px solid #ff7600;
border-bottom: 1px solid #ff7600;
}
#logo {
margin: auto;
max-width: 150px;
display: inline-block;
overflow: hidden;
margin: -75px;
position: absolute;
}
#photography-bottom {
display: flex;
flex: 1;
width: 100%;
align-items: center;
justify-content: center;
}
#photography-button {
height: 3em;
width: 12em;
background-color: #2B2A2A;
border: .2em solid #ff7600;
border-radius: 1.8em;
margin: auto;
}
h1 {
color: #ff7600;
text-align: center;
font-size: 1.4em;
vertical-align: middle;
line-height: 2.2em
}
#business-top,
#photography-bottom {
pointer-events: none;
position: relative;
z-index: 1;
transition: 1s;
/* min-height: 200px; you ma want this to avoid logo and button to overlap */
}
#business-top a,
#photography-bottom a {
pointer-events: auto;
}
#business-top:hover,
#photography-bottom:hover {
flex: 3;
}
#business-top a:hover:before,
#photography-bottom a:hover:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
<div id="business-top">
<a href="www.lluisballbe.smugmug.com">
<div id="business-button">
<h1>BUSINESS</h1>
</div>
</a>
</div>
<div id="logo-separator">
<div class="separator"></div>
<div id="logo"><img src="https://lluisballbe.smugmug.com/Assets-for-website/i-CsMnM3R/0/Th/800x800-round-Th.png"> </div>
</div>
<div id="photography-bottom">
<a href="www.lluisballbe.smugmug.com">
<div id="photography-button">
<h1>PHOTOGRAPHY</h1>
</div>
</a>
</div>
关于html - 带动画的中央分割布局(仅 CSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35421979/
我正在尝试向当前的删除功能添加功能。我遇到的问题是,当我单击“删除”时,它会立即删除而不提示。我一直在尝试使用 this question 中的答案添加提示功能. 我的问题是哪种是实现删除功能最有效的
我正在尝试在 iMagick 中执行以下操作,但无法使其正常工作: 检查图像是否超过 390 像素高,如果是,则将其调整为 390 像素高,如果不是保持尺寸。 添加一个白色 Canvas ,宽 300
我想将我的 Logo 居中并让我的主菜单显示在 Logo 的每一侧,我不知道该怎么做,我是否必须创建两个单独的菜单来实现该布局? 非常感谢任何建议。 谢谢!
我正在使用 iosslider但似乎不能一次只在 slider 中显示一张图像。我也在尝试将显示的单个图像居中。这是我对 HTML 的看法: HTML:
我希望有一种方法可以在 Android 设备上以编程方式访问中央可信 keystore 。我知道有一个存在,至少用于验证 SSL 连接等。它还附带一个方便的工具,用于添加证书、浏览等。(在设置->位置
我对蓝牙通信还很陌生。我的第一个项目打算将数据从 iOS 设备传输到 BLEshield(小芯片)。 为了测试我的中央代码,我决定将 iPhone 设置为外围设备(一旦我拿到芯片,芯片将扮演的角色)并
在我的公司,我们使用 composer 构建我们的大部分项目,这意味着我的不同团队会从互联网上下载大量重复的包(相同版本的相同库)。 我试过Satis Composer Server,但问题是缓存不是
我有一个 iOS 应用程序,它是我控制固件的外围设备的核心。类似的 Android 应用程序运行良好,能够连接到外围设备、发现服务、明确绑定(bind)并读取加密特征。 但是,在 iOS 上,Core
我想得到这个结果( Storyboard View ): 但是当我模拟我的应用程序时,我得到了这个结果(没有任何限制) 所以我尝试添加一些约束以使 TableView 居中。但是当我添加任何约束时,T
当我调整浏览器窗口大小时,我的中心 block 一直向左移动 正常: http://imgur.com/b2AVkUx 调整浏览器窗口大小后: http://imgur.com/mJq6AuO 所以我
我们正在重新考虑我们的开发环境。目前,我们都有 Elitebook 笔记本,但速度没有我们希望的那么快。我们正在考虑将我们的开发环境虚拟化为中央 VM 服务器。 我们的开发人员在 Visual Stu
我正在尝试获取 org.jfrog.buildinfo:artifactory-maven-plugin:2.6.1,它可以在 https://jcenter.bintray.com 中找到. 但是由
我有以下 Artifactory (6.12.1) 设置 远程存储库: 中央:https://repo.maven.apache.org/maven2 jboss:https://repository
如何让绿色 div 为 width: 100% 与其他两个 div 在同一行并固定 宽度。 我的想法是让两侧的 div 有固定的宽度,而中间的 div 是 width: 100% (以剩余空间)。 是
我目前正忙于将相当旧的项目从 Ant 迁移到 Gradle。这包括用等效的 Gradle 依赖管理替换 lib 目录。 目前我在使用 Maven Central 时遇到了问题。某些依赖项(我发现至少有
来自没有 typedef 的 Java 世界,我有一个问题要问 C++ 开发人员: 我的任务是用 C++ 重写一个大型 MATLAB 项目。为了了解代码的结构,我已经开始重建模块和类结构,但没有实际实
为了轻松运行我的 web 应用程序,我决定将 Jetty 添加到我的单个 POM 文件中。 关注 official documentation ,我将此添加到我的 : org.ecli
我最终想尽可能多地解耦现有的 ASP.NET MVC 项目。 随着时间的推移,他们使用多种方法,我正在学习: 标准 MVC, Controller 操作将单独的 View 返回给浏览器。 返回 FAT
正如问题所建议的那样,我们有自己的 BLE 设备和 Android 应用程序来连接该设备。我们能够与 BLE 设备连接并成功完成所有操作。 与此同时,我们能够检测到我们的 BLE 设备与其他 3rd
在 Android 上我们有 requestMtu 和 onMtuChanged,这似乎意味着我们必须手动协商 MTU 大小,如果中央设备和外围设备都是基于 Android 的(但我可能错了,它也可能
我是一名优秀的程序员,十分优秀!