【问题标题】:Semantic UI and basic CSS styling语义 UI 和基本 CSS 样式
【发布时间】:2017-05-29 09:07:55
【问题描述】:

我在语义 UI 菜单上应用一些非常基本的 CSS 时遇到问题。就我而言,我有两个垂直菜单, 沿着左边距,显然我需要它们都具有相同的宽度,否则看起来会很疯狂。 但是,嗯……这里开始出现一些意想不到的麻烦。我试过这样的东西:

<div class="ui labeled compact vertical icon menu" style="width: 250px;">

这行不通。然后我查看了https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.2.10/semantic.css中包含的css文件

..并试图在我的页面上覆盖一些 CSS,如下所示:

.ui.menu {
 width: 250px;
}

但这也行不通。然而, 部分后仔细研究巨大的 CSS 文件:

/*******************************
     Theme Overrides
*******************************/
/*******************************
     Site Overrides
*******************************/
/*
 * # Semantic - Menu
 * http://github.com/semantic-org/semantic-ui/
 *
 *
 * Copyright 2015 Contributor
 * Released under the MIT license
 * http://opensource.org/licenses/MIT
 *
 */

/*******************************
         Standard
*******************************/

/*--------------
  Menu
---------------*/

.ui.menu {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
margin: 1rem 0em;
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif;
background: #FFFFFF;
font-weight: normal;
border: 1px solid rgba(34, 36, 38, 0.15);
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15);
border-radius: 0.28571429rem;
min-height: 2.85714286em;
}

...表示“宽度”不是可覆盖的属性。 那么,如何设置宽度呢? 看起来,我可以选择不同的菜单大小,比如“迷你菜单”、“小菜单”……“海量菜单”,对我来说绝对没用。 有什么想法吗?

【问题讨论】:

    标签: javascript css semantic-ui


    【解决方案1】:

    避免为元素指定绝对大小 - 正确的做法是使用 grid 和菜单的 fluid 属性,使其使用父元素的全宽(在这种情况下,网格列)。

    <div class="ui grid">
      <div class="two wide column">
         <div class="ui labeled compact vertical fluid icon menu">
           <!-- your first menu -->
         </div>
      </div>
      <div class="two wide column">
         <div class="ui labeled compact vertical fluid icon menu">
           <!-- your second menu -->
         </div>
      </div>
      <div class="twelve wide column">
        <!-- your content here -->
      </div>
    </div>
    

    当然,根据需要调整列宽。

    【讨论】:

    • 谢谢。是的,这样的事情已经在我脑海中流传了一段时间,我也会试试这个并告诉你它是怎么回事。
    • 为了使这种方法发挥作用,我相信我必须确保我有整个屏幕宽度可以玩。你看,我也在一个 PHP 框架 (Yii2) 中工作,默认情况下似乎总是将所有内容放在屏幕的水平居中区域内,左右两边都有宽阔的空白边距。我不想那样,但我也不知道如何改变它。所以目前我对我的菜单使用了一些蛮力,比如position:fixed, left:12px。如我所愿,这将我的菜单放在最左边。但我怀疑网格方法会保留在该区域内?
    • 网格只会增长到父级的大小 - 您可以将菜单单独保留在网格中,给它们 eight wide column 每个以使其宽度相等,然后将网格定位和调整为你希望。但是,语义 UI 支持 fixed menus,那么为什么不直接使用它呢?
    • 非常感谢。是的,网格采用其父级的大小。如果我可以使用框架给我的居中区域(视口?),那么当视口成为父级时,它可以完美地工作,宽度等等。但我需要菜单(以及网格)位于视口之外。这需要更多的工作,但这是可能的。也会检查固定菜单!然而——在你的帮助下——我知道如何继续下去。我现在将这个问题标记为已回答。
    【解决方案2】:

    尝试在您的 CSS 代码中添加 !important

    【讨论】:

    • 谢谢范多夫!会试一试的!
    • 我觉得!important的使用越来越难以维持加班。最好对不依赖于优先级的覆盖使用更具体的样式。 stackoverflow.com/a/3427813/861010
    【解决方案3】:

    尝试重新排列您的 css 链接。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 2013-10-03
    • 1970-01-01
    • 2020-08-28
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    相关资源
    最近更新 更多