【问题标题】:How to make logo (image) responsive in React Ant design layout?如何在 React Ant 设计布局中使徽标(图像)响应?
【发布时间】:2021-04-29 10:23:57
【问题描述】:

我在我的 React 应用程序中使用 Ant 设计布局。

我添加了标题和侧边栏,我在徽标上遇到了一些问题,当我单击切换时,徽标没有响应。如何让它响应?

这里是stazkblitz

代码

import React from 'react';
import ReactDOM from 'react-dom';
import 'antd/dist/antd.css';
import './index.css';
import { Layout, Menu } from 'antd';
import {
  MenuUnfoldOutlined,
  MenuFoldOutlined,
  UserOutlined,
  VideoCameraOutlined,
  UploadOutlined,
} from '@ant-design/icons';

const { Header, Sider, Content } = Layout;

class SiderDemo extends React.Component {
  state = {
    collapsed: false,
  };

  toggle = () => {
    this.setState({
      collapsed: !this.state.collapsed,
    });
  };

  render() {
    return (
      <Layout>
        <Sider trigger={null} collapsible collapsed={this.state.collapsed}>
          <div className="logo" />
          <Menu theme="dark" mode="inline" defaultSelectedKeys={['1']}>
            <Menu.Item key="1" icon={<UserOutlined />}>
              nav 1
            </Menu.Item>
            <Menu.Item key="2" icon={<VideoCameraOutlined />}>
              nav 2
            </Menu.Item>
            <Menu.Item key="3" icon={<UploadOutlined />}>
              nav 3
            </Menu.Item>
          </Menu>
        </Sider>
        <Layout className="site-layout">
          <Header className="site-layout-background" style={{ padding: 0 }}>
            {React.createElement(this.state.collapsed ? MenuUnfoldOutlined : MenuFoldOutlined, {
              className: 'trigger',
              onClick: this.toggle,
            })}
          </Header>
          <Content
            className="site-layout-background"
            style={{
              margin: '24px 16px',
              padding: 24,
              minHeight: 280,
            }}
          >
            Content
          </Content>
        </Layout>
      </Layout>
    );
  }
}

ReactDOM.render(<SiderDemo />, document.getElementById('container'));

【问题讨论】:

标签: css reactjs antd


【解决方案1】:

您可以删除带有背景图片的&lt;div&gt;(问题中的当前实现)以显示徽标。

并且,使用 &lt;img&gt; 和 CSS 使其成为 responsive

CSS:

.logo {
  width: 100%;
  max-width: 169px;
  height: 24px;
}

JSX:

<img
  className="logo"
  src="https://www.skysens.io/images/white-logo.png"
/>

【讨论】:

    猜你喜欢
    • 2020-03-22
    • 2013-11-08
    • 2016-04-28
    • 2015-12-30
    • 2019-08-03
    • 2016-01-12
    • 2021-03-07
    • 2016-10-11
    • 2015-07-13
    相关资源
    最近更新 更多