6

我目前正在尝试将 Menu.Item 中的图标和文本与 Semantic UI React V.0.68.2 对齐。

目前我的 HTML 输出如下所示:

<a class="active item pointer">
    <i aria-hidden="true" class="icon ti-icon ti-home large"></i>
    Dashboard
</a>

我的 JSX 是这样的:

<Menu vertical className="some classes" icon=''>
    <Menu.Item
    active={active}
    onClick={onClick}
    className="some class"
    >
        <Icon name="home" large /> Dashboard
   </Menu.Item>
</Menu>

我写了一个新的图标组件来使用我自己的图标字体,看起来像这样。我试图尽可能接近语义 UI 的 React 实现中的原始 Icon 类。

import React, { Component } from "react";
import classnames from "classnames";

/**
 * @class Icon
 * @extends {Component}
 * @description Icon class for themify icons. Replacement for semantic ui Icon class
 */
class Icon extends Component {
    render() {
        var iconClass = classnames("icon ti-icon ti-" + this.props.name, {
            big: this.props.big,
            large: this.props.large,
            close: this.props.close
        });

        return (
            <i
                aria-hidden={true}
                className={this.props.close ? iconClass.replace("icon", "") : iconClass}
                onClick={this.props.onClick}
            />
        );
    }
}

export default Icon;

现在我希望文本和图标垂直居中,但我无法让它工作,它们的文本似乎总是在其父节点的顶部。但实际上我希望它垂直居中显示在 Menu.Item 中。与任何大小的图标。因此,当我将图标的大小更改为大时,文本应始终垂直居中。大小类与语义 UI 中的相同。

仪表板未对齐

有谁知道如何实现这一目标?提前致谢 :)

4

1 回答 1

0

您好,您面临一个非常常见的问题,可能的解决方案在以下代码笔 https://codepen.io/anon/pen/XEKZwq中描述

我建议你做的是将文本包装在一个跨度中,而不是:

<a class="active item pointer">
    <i aria-hidden="true" class="icon ti-icon ti-home large"></i>
    Dashboard
</a>

您执行以下操作

<a class="active item pointer">
    <i aria-hidden="true" class="icon ti-icon ti-home large"></i>
    <span>Dashboard</span>
</a>

完成此操作后,您可以轻松地使用上面 codepen 中的解决方案。

于 2018-03-16T02:04:27.783 回答