在css中设置主要内容相对于响应侧边栏宽度的边距[重复]

Posted

技术标签:

【中文标题】在css中设置主要内容相对于响应侧边栏宽度的边距[重复]【英文标题】:Set the margin of the main content relative to width of responsive sidebar in css [duplicate] 【发布时间】:2021-12-11 12:19:02 【问题描述】:

我有一个包含响应式侧边栏的 html 网页(悬停时侧边栏的宽度会发生变化)。我希望主要内容相对于侧边栏的宽度有一个边距。请帮助我如何使用 css> 实现这一点例如:

悬停在侧边栏上之前:

将鼠标悬停在侧边栏上后:

【问题讨论】:

这能回答你的问题吗? How to set the margin or padding as percentage of height of parent container? 它不是高度..我想要它基于宽度 那篇文章涵盖了相对于其父尺寸的宽度和高度。特别是***.com/a/53618089/4218046. 【参考方案1】:

通过您的照片示例,我猜您的意思是宽度而不是边距,您只是想确保 div 不重叠。

您可以使用 flexbox,以便 .content 元素在 .sidebar 宽度发生变化时占据剩余的宽度。然后您可以设置 .sidebar 的起始宽度,然后在悬停时更改宽度。

这是一个例子:

/* For style */
.sidebar span,
.content span 
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  font-family: sans-serif;

.sidebar 
  background: #4C559F;
  cursor: pointer;

.content 
  background: #4F9DD4;

.sidebar,
.content 
  position: relative;
  transition: width 0.1s;


/* Important */
.container 
  height: 200px;
  display: flex;
  flex-direction: row;


.sidebar 
  width: 20%;
  margin-right: 10px; /* Your set margin */

.sidebar:hover 
  width: 40%;

.content 
  flex-grow: 1;
<div class="container">

  <div class="sidebar"><span>sidebar</span></div>
  <div class="content"><span>content</span></div>
  
</div>

但是,如果您想使用边距移动内容元素。 . .当您悬停侧边栏时,您必须使用 javascript 向容器或正文元素添加一个类。 . .然后将容器的边距设置为所需的大小。 . . orrr 使用 javascript 动态计算它。

希望这会有所帮助。上帝保佑!

【讨论】:

以上是关于在css中设置主要内容相对于响应侧边栏宽度的边距[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 ConstraintLayout 中的边距属性的情况下相对于屏幕宽度设置 2 个视图之间的空间

导航文章和侧边宽度总和为 100%,但侧边换行

主要内容流动的右浮动侧边栏 - 如何?

CSS/HTML 中没有可见宽度的侧边栏

如何在调整窗口大小时加速 CSS 中的边距缩小?

如何在 IE 中设置对象的边距?