将图像固定到居中文本的右侧而不移动文本

时间:2015-12-27 18:07:25

标签: html css position

通过此JSFiddle,您可以看到如果按下“切换圆圈”按钮,则与文本内联的圆圈会隐藏并显示。它旁边的文字也会移动,因为它周围的div使用text-align: center;

将文本居中

function hide() {
  $('img').toggle();
}
div {
  text-align: center;
  background-color: grey;
  padding: 20px;
}
p {
  display: inline;
  color: white;
  vertical-align: top;
}
img {
  display: inline;
  width: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button onclick="hide();">Toggle Circle</button>

<div>
  <p>Lorem Ipsum</p>
  <img src="https://upload.wikimedia.org/wikipedia/commons/1/13/Disc_Plain_red.svg">
</div>

我希望它能使文本居中,好像圆圈不在那里,然后当点击按钮时,圆圈就会出现在旁边。简单地说,我希望文本的居中不受圆圈的影响,即使它仍然会出现在旁边。

我该怎么做?感谢。

3 个答案:

答案 0 :(得分:0)

您应该使用relative/absolute位置执行此操作,因此img不会影响元素的自然流动

&#13;
&#13;
function hide() {
  $('img').toggle();
}
&#13;
.content {
  text-align: center;
  background-color: grey;
  padding: 20px;
}

.inner {
  position: relative;
  display: inline;
}

p {
  display: inline-block;
  color: white;
  vertical-align: top;
}

img {
  position: absolute;
  width: 50px;
  right: -50px;
  top: 0;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="hide();">Toggle Circle</button>

<div class="content">
  <div class="inner">
    <p>Lorem Ipsum</p>
    <img src="https://upload.wikimedia.org/wikipedia/commons/1/13/Disc_Plain_red.svg">
  </div>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以用更简单的方式做到这一点。

visibility:hiddenvisible(而不是j display使用的toggle一起使用),元素的空间仍为“保留” 然后,您可以使用jQuery toggleClass,并添加一个切换visibility的类。

这样做,您不必像position: absolute

那样计算位置

我已经更新了你的小提琴:https://jsfiddle.net/uuvLogcr/3/

更新了jQuery:

function hide() {
    $('img').toggleClass('hidden');
}

更新了CSS:

div {
text-align: center;
background-color: grey;
padding: 20px;
}

p {
  display: inline;
  color: white;
  vertical-align: top;
}

img {
  display: inline;
  width: 50px;
  visibility: visible;
}

img.hidden {
   visibility: hidden;
}

答案 2 :(得分:0)

如果您可以修改标记,请将<img>移至<p>,然后将其设置为img {position:absolute;},使其脱离正常的内容流程。并使用topright值和transform将图片放入正确的位置。

已更新 - https://jsfiddle.net/uuvLogcr/5/

&#13;
&#13;
function hide() {
  $('img').toggle();
}
&#13;
div {
  text-align: center;
  background-color: grey;
  padding: 20px;
}
p {
  display: inline;
  color: white;
  position: relative;
}
img {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(100%, -50%);
  width: 50px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button onclick="hide();">Toggle Circle</button>

<div>
  <p>
    Lorem Ipsum
    <img src="https://upload.wikimedia.org/wikipedia/commons/1/13/Disc_Plain_red.svg">
  </p>
</div>
&#13;
&#13;
&#13;