【问题标题】:Custom range css and full names in month selector: Antd datepicker月份选择器中的自定义范围 css 和全名:Antd datepicker
【发布时间】:2022-10-15 07:42:36
【问题描述】:

我将 antd DatePicker 用于日期范围。

如何设置所选范围 css 的样式,以便为范围的开始和结束以及所选日期之间的时间设置自定义 css?

此外,当我单击月份时,我需要完整的月份名称,上面有 January 2020February 2020 之类的年份——而不是年份。

同样在月份部分,它显示JanFebMar 作为月份的缩写。同样,我需要它是完整的月份名称,例如 JanuaryFebruary 等。

沙盒:https://codesandbox.io/s/black-breeze-6gmz85?file=/src/styles.css

import React from "react";
import "./styles.css";
import { DatePicker } from "antd";
import "antd/dist/antd.css";
import moment from "moment";

const { RangePicker } = DatePicker;

export default function App() {
  return (
    <div className="App">
      <br />
      <RangePicker />
    </div>
  );
}

【问题讨论】:

    标签: javascript css reactjs antd


    【解决方案1】:

    您可以使用以下类轻松设置开始、选定范围和结束的样式。

    例如

    /* before */
    .ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner {
      background: green;
    }
    
    
    /* after */
    .ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {
      background: purple;
    }
    
    
    /* range */
    .ant-picker-cell-in-view.ant-picker-cell-in-range::before {
      background: red;
    }
    

    给出以下...

    不幸的是,对于自定义 RangePicker 标头的其他方面,我认为它不会公开任何方法来完成您想要的。

    见官方文档:https://ant.design/components/date-picker/#RangePicker

    【讨论】:

    • 谢谢。我看到 antd 内部使用两个输入字段作为开始和结束。是否可以对其进行自定义,以便范围只能有一个输入
    • @li97 否 - RangePicker 用于选择开始和结束日期,因此有两个输入。除了基本的 DatePicker 之外,其他单个输入是 DatePicker[picker="month"]DatePicker[picker="week"]DatePicker[picker="year"]DatePicker[picker="quarter"],请参阅 ant.design/components/date-picker - 使用类似以下内容可能会更好:hypeserver.github.io/react-date-range/#daterangepicker
    • 如何消除第一个元素和范围之间的差距?最后一个元素也是如此。此外,当将鼠标拖到选择范围时,我不希望出现那些虚线,只希望在选择过程中出现紫色。你能帮我吗?
    • 此外,当我将鼠标悬停在所选范围上时,颜色会随着您的方法恢复为蓝色。应该是紫色的吧? codesandbox.io/s/black-breeze-6gmz85?file=/src/styles.css
    • 差距只是伪选择器::after,同样::hover 用于鼠标悬停......我不知道你希望它如何在每种情况下寻找你。我认为您需要提出另一个具体问题 - cmets 部分并不是真正用于进一步的问题。查看我的编辑
    【解决方案2】:

    对于月份选择器,您可以将其添加为道具(它将在月份选择器上显示完整的月份名称):

    <RangePicker monthCellRender={(date) => date.format("MMMM")} />
    

    对于 year cell 还没有那个道具,但将来可能会添加。

    作为替代方案,您可以使用 panelRender 属性进行自定义面板渲染,但如果您问我,这对您的情况来说太过分了。

    【讨论】:

    • monthCellRender 用于日历中的单元格,而不是标题中的可单击元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多