html - 我可以在 pre 旁边放置一个按钮吗?
问题描述
我有一些从文本编辑器宏生成的 HTML。输出看起来像这样:
<div class='source-block'>
<div class="src-container">
<pre class="src bash">sudo apt update</pre>
</div>
<button class='copyBtn' name=btn_e320edcae3214004ba6339711d50024a>copy</button>
</div>
到目前为止,我目前应用于任何这些元素的唯一 CSS 是pre
:
pre {
padding: 8pt;
overflow: auto;
margin: 1.2em;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
我试图将 mycopyBtn
直接放在<pre>
. 由于此文本编辑器宏的工作方式,我无法将按钮放在src-container
“自动”生成的 中。src-container
但是,我可以在div之前或之后移动按钮。
我可以用 CSS 实现这一点吗?我已经尝试了一些使用float
with但没有成功的东西......考虑到宏限制:last-child
,z-index
这甚至可能吗(即,我不能轻易地将 HTML 放在这个src-container
类中)?
谢谢!
解决方案
您可以使用 flexbox 将子元素的流定位在source-block
(父)中。您可以使用它来将它们彼此相邻放置并使用align-items: center;
更多关于 flexbox 的信息:https ://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox
我可以使用 Flexbox(浏览器支持)吗: https ://caniuse.com/#feat=flexbox
/* changed CSS */
.source-block {
display: flex;
align-items: center;
align-content:flex-start;
}
/* provided CSS*/
pre {
padding: 8pt;
overflow: auto;
margin: 1.2em;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
pre.src {
position: relative;
overflow: auto;
padding-top: 1.2em;
}
/* misc styling */
.copyBtn {
margin-top: 2px;
}
<div class="source-block">
<div class="src-container">
<pre class="src bash">sudo apt update</pre>
</div>
<button class='copyBtn' name=btn_e320edcae3214004ba6339711d50024a>copy</button>
</div>
推荐阅读
- php - 登录 PHP 后如何获取用户 ID 会话?
- python - 是否可以将 Flask 会话传递给不在路由中的另一个 .py 文件?
- linq-to-entities - 为什么这个 linq 查询创建的是内连接而不是左连接
- c# - 在执行 MediatR 通知之前,HTTP 请求处于待处理状态
- html - 在一个页面中重叠两个单独的 div
- xml - Powershell - 在计数节点下更新 XML 文本
- wpf - WPF .Net Core 和 PopupWindowAction
- razor - 未生成剃刀“cshtml.g.cs”文件
- flutter - 如何在 Flutter 中检查应用程序的首次启动
- r - Change row order in r, kable package labeling