【问题标题】:Bulma - Button Class forcing InlineBulma - 按钮类强制内联
【发布时间】:2017-11-29 17:41:28
【问题描述】:

我是bulma 的新手,但一直在尝试用它制作一个简单的网页。

我遇到了一个令人沮丧的问题,我认为“button is-large”类之一是强制我页面上的元素内联。

这是正在发生的事情的最小代码演示:

  <div class="column" style="height: 200px">
    <a class="button is-fullwidth" style="height: 100%">
       <p> <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/30611-200.png" alt=""> </p>
       <p class="title">Print Release</p>
    </a>
  </div>

上述代码中的元素将内联显示。

我希望“a 标签”内的元素相互堆叠。当“a tag”具有类“button is-fullwidth”时,它会强制两个元素内联;而如果这个类被删除,它们最终会相互叠加,没有问题。

这是full jfiddle,展示了我为解决问题所采取的不同方法。我尝试了三种不同的方法让这些元素出现在新行上,但都无济于事。

这只是“按钮...”类的固有属性吗?我可以在保留新行的同时保留按钮类吗?

【问题讨论】:

    标签: html css bulma


    【解决方案1】:

    button 类使用 flexbox 设置样式。属性display: flex 使其内容显示为“内联”。您可以了解更多关于 flexbox herehere 的信息。

    有几种方法可以获得你想要的布局,这里是一种方法:

    1. .is-block 修饰符添加到a.button - 这将覆盖display 属性,并确保块元素可以堆叠。在您的示例中,p 是块元素,imginline 元素。 (或者,您可以在 CSS 中通过将 flex-direction: column 添加到您的按钮来更正此问题。)

    2. 您可以创建一个新的修饰符类,而不是使用内联 CSS 调整 .column 的高度,当您需要固定高度时可以将其添加到列中。我在.column 中添加了is-fixed-heightheight-200,并使用了一些自定义CSS 来定义它们。

    3. 布尔玛给.button 一个height2.25em。您需要使用100% 覆盖它。同样,您可以创建一个修饰符类并将其添加到按钮(类似于is-height-100),或者简单地使用 CSS 定位您想要的按钮。这两个选项都比使用内联 CSS 更可取。

    4. 您使用的图像太大,无法让文本适合按钮下方。不要在列上使用height: 200px,而是使用min-height。如果您必须使用200pxheight,则需要对图像进行一些调整。告诉我,我可以尝试帮助。

    fiddle

    .is-fixed-height.height-200 {
      min-height: 200px;
    }
    
    .is-fixed-height.height-200 .button {
      height: 100%;
    }
    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.1/css/bulma.min.css" rel="stylesheet"/>
    <div class="container">
      <div class="block">
        <div class="columns">
          <div class="column is-fixed-height height-200">
            <a class="button is-block is-fullwidth">
              <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/30611-200.png" alt="">
              <p class="title">Print Release</p>
            </a>
          </div>
          <div class="column is-fixed-height height-200">
            <a class="button is-block is-fullwidth">
              <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/30611-200.png" alt="">
              <p class="title">Print Release</p>
            </a>
          </div>
          <div class="column is-fixed-height height-200">
            <a class="button is-block  is-fullwidth">
              <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/30611-200.png" alt="">
              <p class="title">Print Release</p>
            </a>
          </div>
        </div>
      </div>
    </div>

    【讨论】:

    • 这正是我想要的。你提供的小提琴现在似乎对我有用!只有两个问题:你怎么知道按钮正在使用 flexbox?为什么内联 CSS 如此不受欢迎(这个答案的链接,我假设它很广泛,很好)?
    • 很高兴它有帮助。关于您的第一个问题,您可以使用浏览器的开发工具检查将哪些 CSS 应用于元素。在 Chrome F12 中会显示它们。更多信息在这里:developer.chrome.com/devtools.
    • 你的第二个问题之前已经问过了,所以我只是给你链接:stackoverflow.com/questions/2612483/…
    • 出于好奇,有没有办法让我将任何图像(尺寸合理,可能是 300 像素 X 300 像素)放入按钮中?
    • @Aball 是的,这些尺寸适用于代码。理想情况下,您会将.image 类添加到图像中,并将其包装在自己的容器中。您可以查看各种 Bulma 组件以及它们如何处理图像,例如卡
    【解决方案2】:

    你给了锚一类按钮和全角

    button 类总是将内容内联

    HTML

    <a class="btn is-fullwidth" style="height: 100%">
       <p> <img src="https://d30y9cdsu7xlg0.cloudfront.net/png/30611-200.png" alt=""> </p>
       <p class="title">Print Release</p>
    </a>
    

    CSS

    .btn {
    text-align: center;
    }
    

    我已经用自定义类名 btn 更改了 button 类,然后我给它一个与 CSS 对齐的中心

    【讨论】:

    • 好的,这就是我要确定的。有没有办法避免这种行为?
    • 是的,但有替代方案
    • 如果您能提供另一种构建 HTML 的方法,将不胜感激。我想保持按钮类的外观和感觉,但没有内联元素
    • 您将 button 类更改为自定义类名并为其赋予您自己的 CSS 样式,好的,我将编辑我的答案以显示给您
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多