让 Flex 容器采用内容的宽度,而不是宽度 100%

2024-03-05

在下面的示例中,我有一个具有以下样式的按钮......

.button-flexbox-approach {
    /* other button styles */
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem 2rem;
}

http://codepen.io/3stacks/pen/JWErZJ http://codepen.io/3stacks/pen/JWErZJ

但它会自动缩放到 100%,而不是内容的宽度。您可以设置明确的宽度,但这不允许文本自然换行。

如何制作一个按钮,其内部文本以 Flexbox 为中心,但不会增长以适应容器的大小?

.container {
  width: 100%;
  height: 100%;
}

.button {
/*   Simply flexing the button makes it grow to the size of the container... How do we make it only the size of the content inside it? */
  display: flex;
  justify-content: center;
  align-items: center;
  -webkit-appearance: none;
  border-radius: 0;
  border-style: solid;
  border-width: 0;
  cursor: pointer;
  font-weight: normal;
  line-height: normal;
  margin: 0;
  position: relative;
  text-align: center;
  text-decoration: none;
  padding: 1rem 2rem 1.0625rem 2rem;
  font-size: 1rem;
  background-color: #D60C8B;
  border-color: #ab0a6f;
  color: #fff;
}

.one {
  margin-bottom: 1rem;
}

.two {
/* You can put an explicit width on that, but then you lose the flexibility with the content inside */
  width: 250px;
}
<div class="container">
  <p>
    Button one is flexed with no width and it grows to the size of its container
  </p>
  <p>
    <a class="button one" href="#">Button</a>
  </p>
  <p>
    Button two is flexed with an explicit width which makes it smaller, but we have no flexibility for changing the content
  </p>
  <p>
    <a class="button two" href="#">Button 2</a>
  </p>
</div>

代替display: flex在容器上,使用display: inline-flex.

这会将容器从块级(采用其父级的完整宽度)切换到内联级(采用其内容的宽度)。

这种尺寸调整行为类似于display: block vs. display: inline-block.

相关问题及解决方案参见:

  • 使弹性项目采用内容宽度,而不是父容器的宽度 https://stackoverflow.com/q/40141163/3597276
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 Flex 容器采用内容的宽度,而不是宽度 100% 的相关文章

  • 电子邮件链接在 Android 上不起作用

    我有 HTML 格式的点击电子邮件链接的代码 它在我的电脑上运行良好 但在移动设备上不起作用 我只有 Android 所以我不知道问题是否仅在 Android 上或所有移动设备上 当我按下链接时 浏览器显示 网页无法显示 邮寄至 电子邮件受
  • 使用base64编码图像的优点和缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在考虑为我正在开发的网站使用 Base64 编码图像来优化加载时间 不管怎样 在开始之前 我想知道 这样做的优点和缺点是什么 目前 我没有看
  • 重新创建 CSS3 过渡三次贝塞尔曲线

    在 CSS3 过渡中 您可以将计时函数指定为 cubic bezier 0 25 0 3 0 8 1 0 在该字符串中 您仅指定曲线上点 P1 和 P2 的 XY 因为 P0 和 P3 始终分别为 0 0 0 0 和 1 0 1 0 根据苹
  • html5 canvas 上的错误显示 lineWidth=1

    I have example https developer mozilla org samples canvas tutorial 4 5 canvas linewidth html https developer mozilla org
  • Bootstrap Affix Nav 导致下面的 Div 向上跳转

    我使用 Bootstrap 的 Affix 函数创建了一个 JSFiddle 以便在向下滚动并且标题移出视图时使导航保持在屏幕顶部 我遇到的问题是 当使用纯 HTML 时 导航下方的文本会过早地跳起来并隐藏在导航后面 查看有问题的代码her
  • div 中的文本字符有限,添加“阅读更多”链接并在单击链接时显示所有字符

    我有一个 div 里面有文本 使用 PHP 和 MySQL 显示 结构如下 div class description p Here is a lot of text p div 我想在 p 标签内的文本超过 100 个字符时显示 阅读更多
  • CSS使背景图像使用字体字符

    我想使用字体字符 例如来自 font awesome 作为输入元素的背景图像
  • 如何将 div 与其父级的顶部对齐,但保持其内联块行为?

    See http jsfiddle net b2BpB 1 http jsfiddle net b2BpB 1 问 如何让box1和box3对齐到父div的顶部boxContainer boxContainerContainer backg
  • 如何去掉单词末尾多余的连字符

    我有句话我已经放了 shy 里面 它可以使用连字符 直到我达到足够小的屏幕尺寸 然后它在末尾添加一个额外的连字符 编辑 无法在 jsfiddle 中重现它 因为它似乎对 html 的解释不同 不过我可以展示问题的图片 h3 Flu shy
  • 您可以将现有的 div 复制到模式对话框吗

    我有一个带有多个面板的仪表板来显示不同的信息 我希望能够添加一个按钮来以模式显示面板 我正在使用引导程序 我所能找到的只是已经编写的模态 我想复制作为面板的 div 标签的内容 然后将其显示在模型中 但我不确定如何进行 该面板的 html
  • 将 JSON 发布到 Python CGI

    我已经安装了 Apache2 并且 Python 可以工作 但我有一个问题 我有两页 一个是 Python 页面 另一个是带有 JQuery 的 Html 页面 有人可以告诉我如何让我的 ajax 帖子正常工作吗
  • HTML5 支持命名空间吗?

    我们是否可以使用新标签来扩展 HTML5 例如
  • 宽度:适合内容;在 Chrome 上工作,但在资源管理器上不工作

    我构建了一个应用程序 所有内容都在 Chrome 中完美显示 但如果我在 Windows 资源管理器中打开该应用程序 容器会比应有的小 我在用着width fit content 这是只适用于 Chrome 的东西吗 我怎样才能使其适用于所
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就
  • CSS - div 与父 div 底部对齐(内联块)

    我知道这个 html 很草率 有一些不必要的额外 div 但无论如何 我无法理解为什么 ID 为 info box right 的 div 与父 div 的底部对齐 您可以看到 文本 与下面的 jsfiddle 示例的底部 有什么想法可以让
  • 如何为 TBODY 应用垂直滚动条

    我的表中有 4 列和 5 行数据 我必须为 TBODY 应用垂直滚动条 TH 标题内容不应滚动 我对场景进行了编码 并且在我将滚动类应用于 TBODY 之前它工作正常 一旦我将滚动样式类应用于 TBODY 它就会破坏之前的对齐方式 任何人都
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 水平对齐输入字段

    我正在尝试获取一个输入字段 并且它与同一水平线上的关联提交按钮相关 但事实证明这是一个挑战 这是我的代码
  • AngularJS 在指令运行之前通过 AJAX 检索数据

    我正在使用 AngularUIuiMap http angular ui github com directives map实例化谷歌地图的指令 uiMap 指令非常适合处理硬编码数据 mapOptions and myMarkers 但是
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航

随机推荐

  • 设置具有多个值的本地化字符串的格式

    我创建了一个本地化字符串 其形式类似于 text key Collected d out of d 并使用以下格式化程序 let numberOfItems 2 let totalNumberOfItems 10 let format NS
  • 在R中过滤掉多列

    假设一个数据集有多个行和列 其中一些列为 0 我的意思是该列中的所有值都是 0 如何过滤掉这些列 我已尝试使用以下代码但无济于事 training data lt Filer function x all x 1 99 0 training
  • Flutter - 轻按时检测 TextField

    我在 Windows 中制作了一个 Flutter 应用程序并且一切正常 但是当我尝试编译到 iOS 时抛出了意外错误 在文本字段中检测到 onTap 不是正确的参数 我不知道会发生什么 在 Windows 中不会返回此错误 反正 有人知道
  • 设置输入高度为父级的 100%

    我在设置输入 键入文本 高度以适合 100 的父母时遇到了一些问题 td 高度 我什至尝试迭代每个输入并使用 jQuery 手动设置它的高度 但这需要相当多的时间 我正在处理的网站有很多单元格 并且仍然无法在 IE 7 和 8 上工作 我有
  • 将表单身份验证添加到 ASP.Net 项目会导致 401.2 未经授权?

    我正在尝试将表单身份验证插入到最初使用 VS 2013 和 ASP Net 4 0 使用无身份验证模板创建的 ASP Net 项目中 我已遵循 MSDN 上的建议 并将其添加到 system web 下的 Web Config 中
  • 添加资源文件到xcode

    我正在尝试将一些新的资源文件添加到由另一个人在另一台 Mac 上构建的项目中 我认为该项目有前人的规定 使用右键单击 gt 将文件添加到 MyProject 不会提供预期的结果 编译项目后 添加的文件在应用程序中不可见 如何在我的项目中添加
  • 最新的 Jersey 示例不起作用

    我已经安装了最新版本的球衣 捆绑版本 2 13 0 以及该版本的示例 然后我尝试了 用于测试 Restful 服务 examples helloworld pure jax rs src main java org glassfish je
  • JavaScript 加载图像的进度

    JS 有没有办法在加载图像时获取加载图像的进度 我想使用HTML5新的Progress标签来显示加载图像的进度 我希望有这样的东西 var someImage new Image someImage onloadprogress funct
  • MongoDB - 大量 MongoCleaner 线程

    不知何故 我的 java 应用程序与 mongodb 通信最终产生了大量名为 MongoCleanerXXX 的停放 睡眠 线程 我认为它来自驱动程序 其数量约为 600 显然数据库存在一些连接问题 在 mongod 重新启动一段时间后确实
  • 我的 httpd.conf 是空的

    我最近在 ubuntu 上安装了 apache2 但我有一个问题 我的 httpd conf 是空的 有人能给我一份 ubuntu 上 apache2 的 httpd conf 的干净副本吗 谢谢 编辑 我看到了你的答案 但在 wampse
  • 如何让dput删除多余的数据?

    我想要一个 SO 问题的最小可重现代码 我一直在使用dput droplevels head df 50 然而 df大约有 4k 条记录 看起来像dput正在为每个人打印一些东西 我需要在问题中显示两个不同的 df 所以不会让我超过 30
  • 打字稿中具有数据水合/脱水的类

    我想分享 React TS 前端和 Node TS 后端之间的 TS 类或接口 问题是 TS 类型在编译时被剥离 所以当我想将类实例转换为 JSON 时我无法使用它们 我想知道是否有任何解决方案可以在静态文件中描述我的对象 生成 TS 类
  • 在 .Net 2.0 中对 IList 进行排序的最佳方法是什么?

    我有一个IList
  • 当调试器设置为 LLDB 时,Xcode 4 挂起附加到(应用程序名称)

    当我在模拟器中运行应用程序时 Xcode 挂在 附加到 应用程序名称 上 但这仅在调试器设置为 LLDB 时发生 当调试器设置为 GDB 时 应用程序运行良好 产品 gt 编辑方案 gt 运行 gt 调试器 如何修复此问题以使用 LLDB
  • C static 关键字与 C++ 私有作用域?

    本地翻译单元的 C 等效项是什么staticC 中的函数 例如有以下内容bar c static void bar 在C 中 这会被写成私有成员函数吗 class foo void bar void foo bar 私有成员函数隐式引入了t
  • 用例图包括

    我有一个关于用例图的问题 如图所示 用户可以输入或更新他的姓名和问题 正如您所看到的 用户在第一次输入信息时需要输入姓名和问题 因此包括在内 但是 如果他希望更新他的信息 图表是否表明他必须修改名称和问题 因为它们包含在内 例如 如果他拼错
  • Economist.com 如何实施其粘性标题? jQuery?

    如果您访问 经济学人 网站上的一篇文章 例如 http www economist com node 17629757 http www economist com node 17629757 当您向下滚动页面超过某个点 使用 PAGEDO
  • 如何禁用 <> 的自动关闭而不禁用其他括号 () {}?

    我对自动完成的功能感到恼火 lt gt Rust 的 VSCode 中的括号 虽然它在指定泛型类型时可能很有用 但当它为我的小于运算符自动完成 gt 时 它确实让我烦恼 我知道我可以完全禁用自动关闭括号 但是有没有办法指定其中哪些应该被视为
  • 如何使用 matplotlib 在 python 中绘制 3D 密度图

    我有一个 x y z 蛋白质位置的大型数据集 并且想将高占用率区域绘制为热图 理想情况下 输出应该类似于下面的体积可视化 但我不确定如何使用 matplotlib 实现这一点 我最初的想法是将我的位置显示为 3D 散点图 并通过 KDE 对
  • 让 Flex 容器采用内容的宽度,而不是宽度 100%

    在下面的示例中 我有一个具有以下样式的按钮 button flexbox approach other button styles display flex justify content center align items center