html - 使用 CSS 将包含动态文本长度的对象放置在其父对象之外

标签 html css css-transforms

我希望这不是一个愚蠢的问题,但我已经在这个问题上纠结了很长时间,因此决定寻求答案。

我正在尝试以页面为中心实现以下目标:

[ [动态变化的文本] [img] [其他文本] ]

左侧文本的长度不应影响整个 block 的居中特性。

无论周围有什么文字,图像都应位于屏幕中央。

我尝试在左侧文本上使用负翻译,这实现了效果,但在文本字符串改变长度时不会缩放。

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.wrapper {
  border: 1px solid green;
  left: 50%;
  position: absolute;
}

.long-text {
  border: 1px solid yellow;
  display: inline-block;
  transform: translateX(-100%);
}

.image-block {
  border: 1px solid blue;
  display: inline-block;
  transform: translatex(-100%);
}
<div class="wrapper">
  <span class="long-text">Longer text goes in here</span>
  <div class="image-block">
    <img src="http://fakeimg.pl/30x30" alt="" />  
    <span>Shorter text</span>
  </div>
</div>

有什么想法吗?

最佳答案

通过设置 flex:1,可以使用 Flexbox 轻松实现图像左侧和右侧 block 的宽度相等:

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.wrapper {
  border: 1px solid green;
  display: flex;
}
.wrapper > span {
   flex: 1;
}

.long-text {
  border: 1px solid yellow;
  text-align: right;
}

.image-block {
  border: 1px solid blue;
  display: inline-block;
}
<div class="wrapper">
  <span class="long-text">Longer text goes in here</span>
  <div class="image-block">
    <img src="http://fakeimg.pl/30x30" alt="" /> 
  </div>
  <span>Shorter text</span>
</div>

是你要找的吗?

关于html - 使用 CSS 将包含动态文本长度的对象放置在其父对象之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45230016/

相关文章:

css - 如何将固定和相对与宽度 100% 结合起来

javascript - 防止滚动条出现在变换上 : translate with React-Spring

jquery - CSS3 动画,转换到位置

javascript - 滑动 Material 设计卡片 View

javascript - 将文件上传到服务器的发布表单,请求中仅显示文件名?

javascript - Phonegap RSS 提要,Javascript

jquery - html 5 中的 event.originalEvent.dataTransfer.files 和 event.dataTransfer.files 之间的区别

css - ' float :none' property between every 3 'li' using CSS

html - 所有浏览器中的一种选择框样式

javascript - CSS3 rotate3d pr rotateX 获取元素的实际高度