如何根据图像的对齐方式设置"智能"页边距?我的网站有Rich Text格式的页面,由Django-ckeditor提供支持.当用户插入图像(或图形元素与图像)时,他可以将其右对齐或左对齐.

<figure class="image" style="float:right">
    <img height="180" width="280" src="/media/about/team/images.jpeg">
    <figcaption>Hello world!</figcaption>
</figure>

我希望图像很好地对齐到文本块的外侧.这意味着,外边距和填充应为0,内边距应为1em.

有没有可能用css样式做到这一点?我想我是在一个网站上见过的,但记不清是在哪里了.

逻辑应该如下:如果元素已经具有样式"Float:Left",则左边距为1em,右边距为0,反之亦然.

推荐答案

如果你知道float:leftfloat:right是在HTML标记中,那么你可以使用它作为你的 Select 器来做进一步的样式设置.所以:

figure {
  margin: 0;
}
[style*='float:left'] {
  margin-right: 1em;
}
[style*='float:right'] {
  margin-left: 1em;
}
hr { 
  clear:both;
}
section {
  text-align: justify; /* to show clearly where the margins are */
}
<section>
<figure class="image" style="float:left">
    <img height="180" width="280" src="/media/about/team/images.jpeg">
    <figcaption>Hello world!</figcaption>
</figure>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</section>
<hr>
<section>
<figure class="image" style="float:right">
    <img height="180" width="280" src="/media/about/team/images.jpeg">
    <figcaption>Hello world!</figcaption>
</figure>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</section>

Css相关问答推荐

在ReactJS中使用动画在栅格上添加柱

如何在react 路由中设置活动类?

在主零部件悬停上对子零部件设置Angular 样式

如果父元素是弹性元素,则不会显示带有纵横比的空div

如何使用Bootstrap将图像水平对齐,使其顶部和底部位于同一水平线上?

.NET 8 预览版 6 中不使用新项目模板提供 Blazor CSS 文件

如何向 Highcharts 迷你图添加具有淡入淡出效果的线性渐变?

重用 CSS 类更改一些属性

如何给三角形添加渐变?

如何添加一个类以在开始时触发转换

Angular Datepicker - 更改日期范围 Select 样式

老虎机插槽上的 CSS 对齐问题

CSS Stepper - LI After Overlaying LI Before

为什么我的 CSS 需要一个它似乎不需要的大括号?

滚动到该 div 后如何使 div 固定?

媒体查询以错误的宽度触发

如何将 bootstrap 列高设为 100% 行高?

Select 器.class.class和.class.class有什么区别?

如何将文本向左旋转 90 度并根据 html 中的文本调整单元格大小

如何重置或覆盖 IE CSS 过滤器?