Html 使导航菜单响应
我正在努力使我的页面导航菜单响应。目前,随着高度的降低,图标不适合在屏幕上显示。理想情况下,我想要的是一个响应性强的设计,其中所有元素都随页面高度缩放(即图标和文本缩小以适应) 到目前为止,我只能让设计使用如下硬编码值。这需要多个断点,我正试图避免这些断点,因为要使所有内容与硬编码的值恰好匹配,这是一个太长的过程Html 使导航菜单响应,html,css,Html,Css,我正在努力使我的页面导航菜单响应。目前,随着高度的降低,图标不适合在屏幕上显示。理想情况下,我想要的是一个响应性强的设计,其中所有元素都随页面高度缩放(即图标和文本缩小以适应) 到目前为止,我只能让设计使用如下硬编码值。这需要多个断点,我正试图避免这些断点,因为要使所有内容与硬编码的值恰好匹配,这是一个太长的过程 .topnav{ 位置:固定; 宽度:100%; 宽度:100vw; 背景色:透明; } .topnav#myLinks{ 显示:块; 位置:固定; 最高:15%; 高度:85vh
.topnav{
位置:固定;
宽度:100%;
宽度:100vw;
背景色:透明;
}
.topnav#myLinks{
显示:块;
位置:固定;
最高:15%;
高度:85vh;
宽度:400px;
左缘:80%;
保证金权利:5%;
背景色:透明;
边界半径:10px;
底部:5%;
}
.菜单链接{
垫面:0.5em;
}
.菜单卡{
显示:块;
文本对齐:居中;
不透明度:100%;
填充:0;
保证金:0;
利润底部:18%;
}
.菜单卡:悬停{
背景色:透明;
不透明度:100%;
过渡:所有0.8秒;
}
/*将鼠标悬停在菜单卡上时转换.card文本*/
.菜单卡:悬停.卡文本{
不透明度:100;
最大宽度:66%;
/*这是在.card文本中设置动画的属性*/
宽度:38%;
/*设置实际宽度*/
背景色:rgba(148181201,0.9);
边框宽度:8px;
}
.菜单图标{
显示:内联;
文本对齐:居中;
左边距:-265px;
右边距:0;
左侧填充:0;
填充底部:0;
最大宽度:20%;
垂直对齐:中间对齐;
背景色:rgba(148181201,0.9);
边界半径:90px;
填充:8px;
}
.卡片文本{
最大宽度:0%;
不透明度:0;
颜色:#5DCA31;
背景色:透明;
文本阴影:2px 2px黑色;
浮动:左;
垂直对齐:中间对齐;
保证金:0;
右边距:22%;
填充:0.5em;
右边填充:140px;
左:2%;
填充顶部:24px;
垫底:35px;
边框颜色:rgba(148181201,0.9);
边框宽度:0px;
边框样式:实心;
边界半径:90px;
过渡:背景色0.8s,边框宽度0.8s,最大宽度0.8s;
}
#家{
/*正文*/
字号:1.5em;
利润率最高:3%;
}
.家{
/*图标*/
利润率最高:3%;
}
#策略{
字号:1.25em;
}
#保安{
字号:1.5em;
}
#保证{
字号:1.5em;
}
这是一个使用flexbox和position absolute的工作版本
您使用了太多的页边距属性,似乎有很多不必要的/冗余的样式,尽管它们可能依赖于页面中您没有发布的其他样式。您必须使用media query更改
#myLinks
的宽度,但除此之外,我认为这是一个响应速度非常快的解决方案。也可以考虑使用<代码>框大小:边框B/COD>作为全局样式。如果您熟悉CSS Frasbox布局。然后flex shrink将帮助缩小文本和图标,以适应屏幕。你可以!此链接用于了解有关Flexbox的更多信息。
.top-bar {
text-align: center;
background-color: rgba(0, 0, 0, 0.5);
}
.topnav {
position: fixed;
width: 100vw;
}
.topnav #myLinks {
display: flex;
flex-direction: column;
position: fixed;
width: 300px;
top: 10%;
right: 0;
height: 85vh;
max-height: 85%;
border-radius: 10px;
}
.menu-link {
padding-top: 0.5em;
}
.menu-card {
display: flex;
justify-content: center;
flex: 1 1 25%;
}
.menu-card a {
position: relative;
width: 100%;
}
.menu-icon {
position: absolute;
z-index: 1;
right: 20%;
max-height: 65%;
border-radius: 50%;
background-color: rgba(148, 181, 201, 0.9);
transition: all 0.8s;
}
.card-text {
display: flex;
align-items: center;
width: 0;
top: 6%;
height: 100%;
max-height: 0;
text-align: left;
font-size: 100%;
opacity: 0;
color: #5DCA31;
background-color: transparent;
text-shadow: 2px 2px black;
margin: 0;
border-color: rgba(148, 181, 201, 0.9);
border-style: solid;
border-radius: 90px;
transition: all 0.8s;
}
.menu-card:hover {
background-color: transparent;
opacity: 1;
transition: all 0.8s;
}
.menu-card:hover .menu-icon {
right: 0;
}
.menu-card:hover .card-text {
opacity: 1;
padding-left: 10%;
max-height: 65%;
width: 100%;
border-width: 8px;
box-sizing: border-box;
background-color: rgba(148, 181, 201, 0.9);
}
@media screen and (max-height: 700px) {
.topnav #myLinks {
width: 200px;
}
}