React-Bootstrap 的下拉菜单组件上的自定义样式

Posted

技术标签:

【中文标题】React-Bootstrap 的下拉菜单组件上的自定义样式【英文标题】:Custom Style on React-Bootstrap's Dropdown Menu component 【发布时间】:2017-03-09 13:37:33 【问题描述】:

我正在尝试将自定义 css 样式应用于 react bootstrap 组件,但不知道如何访问组件 JSX 中不明确的元素。例如:

<ButtonGroup>
      <DropdownButton className="ddown" id="ddown" title="Dropdown">
      <MenuItem className="itemxx" href="#books">Books</MenuItem>
      <MenuItem className="itemxx" href="#podcasts">Podcasts</MenuItem>
      <MenuItem className="itemxx" href="#">Tech I Like</MenuItem>
      <MenuItem className="itemxx" href="#">About me</MenuItem>
      <MenuItem className="itemxx" href="#addBlog">Add a Blog</MenuItem>
      </DropdownButton>
    </ButtonGroup>

下拉框没有出口,我希望给它一个特定的宽度并消除它的圆角。有没有办法可以在我的 css 中访问它?

编辑:

这是我要编辑的元素,顺便说一下,如果我尝试通过 .dropdown-menu 访问它,1) 我更改了所有下拉菜单,2) 我无法更改它的大部分值。

【问题讨论】:

在您的index.js 中定义样式表并更改您在className 部分中定义的类。你能验证什么不起作用吗? 正如我在下面的评论中提到的,问题是我想对下拉菜单(或框)进行更改,但是如果您看到代码,我只有按钮的标签,并且菜单项(与实际菜单不同),因此我没有要定义实际菜单的标签。 【参考方案1】:

谢谢大家,我找到了办法!我可以通过在 CSS 中包含 [aria-labelledby = ddown](ddown 是我的下拉菜单的自定义类)来访问特定菜单,如下所示:

.dropdown-menu[aria-labelledby = ddown] 
  background-color: lightblue;
  max-width: 80px; //This, by the way, is not working for some reason.
  border-radius: 0;
  margin: 0;

【讨论】:

你为什么不直接用className="ddown ddown-custom"添加一个额外的类? 谢谢丹迪。因为我试图访问的标签是由引导程序“写入”的,但在我的代码中,我无法访问命名我需要的实际标签,即下拉菜单(不是您在上面的代码中看到的下拉按钮)。 【参考方案2】:

将自定义 className 添加到 &lt;MenuItem&gt;&lt;/MenuItem&gt; 并在自定义时通过在 .css 文件中的 className 末尾附加 a 进行编辑。

在您的 .js 文件中:

&lt;MenuItem className="dropdown-link"&gt; DaItem &lt;/MenuItem&gt;

在您的 .css 文件中:(注意选择器中的 a

.dropdown-link a background: red; color: yellow;

P.S:您可能需要在 .css 中添加!important

【讨论】:

【参考方案3】:

你使用 DropDown.Menu 和 DropDown.Item 的方式如下

<Dropdown.Menu className="my-dropdown">
  <Dropdown.Divider />
  <Dropdown.Item className="itemxx" href="#books">Books</Dropdown.Item>
  <Dropdown.Item>className="itemxx" href="#podcasts">Podcasts</Dropdown.Item>
</Dropdown.Menu>

然后添加您的自定义 CSS,例如

.my-dropdown 
  border-radius: 0;

【讨论】:

以上是关于React-Bootstrap 的下拉菜单组件上的自定义样式的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 react-bootstrap 的 Nav 组件的 Accordion SideBar 菜单

无法修复 laravel 上的顺风组件下拉菜单

React-bootstrap:Dropdown.item,onSelect返回空目标

如何更改 React-Bootstrap NavDropdown 菜单背景颜色?

如何在鼠标悬停时打开 react-bootstrap Dropdown?

[Bootstrap入门][组件-下拉菜单]