CSS 设置滚动条样式

介绍IE5.5新增的滚动条样式属性,包括显示控制与颜色自定义,适用于浏览器窗口及多行文本框。
从dhtml出现以来,微软对dhtml功能的加强就没有停止过,在微软最新的游览器internet  
  explorer  
  5.5的的ie5.5增加了许多新的样式表内容,对滚动条的样式进行修改也是其中之一,下面我们简单地介绍一下涉及浏览器滚动条的样式表内容:  
   
  1.overflow内容溢出时的设置  
   
  overflow-x水平方向内容溢出时的设置  
   
  overflow-y垂直方向内容溢出时的设置  
   
  以上三个属性设置的值为visible(默认值)、scroll、hidden、auto。  
   
  2.scrollbar-3d-light-color立体滚动条亮边的颜色  
   
  scrollbar-arrow-color上下按钮上三角箭头的颜色  
   
  scrollbar-base-color滚动条的基本颜色  
   
  scrollbar-dark-shadow-color立体滚动条强阴影的颜色  
   
  scrollbar-face-color立体滚动条凸出部分的颜色  
   
  scrollbar-highlight-color滚动条空白部分的颜色  
   
  scrollbar-shadow-color立体滚动条阴影的颜色  
   
  以上七个属性设置的值都是颜色值,可以使用样式表定义的各种表达方式。  
   
  使用以上的样式定义内容,我们可以指定浏览器窗口、多行文本框的滚动条的显示与否和颜色样式,第一组样式属性用于设定被设定对象是否显示滚动条,第二组样式属性则用于设置滚动条的颜色,要注意的本文涉及的样式属性都是ie才能支持的,第二组的样式属性只有ie5.5版本才能支持,所以请大家在调试的时候注意。  
   
  我们通过几个实例来讲解上述的样式属性:  
   
  1.让浏览器窗口永远都不出现滚动条  
   
  没有水平滚动条  
   
 

  style="overflow-x:hidden">  
   
  没有垂直滚动条  
   
 
  style="overflow-y:hidden">  
   
  没有滚动条  
   
 
  style="overflow-x:hidden;overflow-y:hidden">或
  style="overflow:hidden">  
   
  2.设定多行文本框的滚动条  
   
  没有水平滚动条  
   
   
   
  没有垂直滚动条  
   
   
   
  没有滚动条  
   
   
   
   
   
  3.设定窗口滚动条的颜色  
   
  设置窗口滚动条的颜色为红色
  style="scrollbar-base-color:red">  
   
  scrollbar-base-color设定的是基本色,一般情况下只需要设置这一个属性就可以达到改变滚动条颜色的目的。  
   
  加上一点特别的效果:  
   
 
  style="scrollbar-arrow-color:yellow;scrollbar-base-color:lightsalmon">  
   
  4.设定其他元素时,基本上一样,你最好是在样式表文件中定义好一个类,这样你就可以重复使用了。  
   
  .coolscrollbar  
   
   
  {  
   
  scrollbar-arrow-color:yellow;  
   
  scrollbar-base-color:lightsalmon;  
   
  }  
   
  将以上语句加入到样式表文件中或html头部的当中,然后使用  
   
    
// src/components/SearchResultList.tsx import React, { useState, useEffect } from 'react'; import { List, Card, Typography, Tag, Space } from 'antd'; import { message } from 'antd'; import CustomPagination from './CustomPagination'; // 自定义分页组件 const { Title, Text, Paragraph } = Typography; interface AssetsItem { id: string; dsName: string; dsTableName: string; dsType: string; areaId: string; areaName: string; sysId: string; sysName: string; bussinessObjName: string; bussinessObjId: string; processPointName: string; dsOwnerName: string; dsOwnerNum: string; isConfirm: string; dsMemo: string; dsRange: string; tags: string; demoFileName: string; demoOssFilePath: string; createUser: string; } interface ApiResponse { list: AssetsItem[]; total: number; } interface SearchResultListProps { keyword: string | null; } // 高亮函数 const highlightKeyword = (text: string, keyword: string | null): React.ReactNode => { if (!keyword || !text || typeof text !== 'string') return text; const regex = new RegExp(`(${keyword})`, 'gi'); const parts = text.split(regex); return parts.map((part, index) => part.toLowerCase() === keyword.toLowerCase() ? ( <span key={index} style={{ color: 'red', fontWeight: 'bold' }}> {part} </span> ) : ( part ) ); }; // 预览函数 const handlePreview = (url: string) => { if (url) { const base64Url = btoa(unescape(encodeURIComponent(url))); window.open('http://10.255.96.51:8012/onlinePreview?url=' + encodeURIComponent(base64Url)); } else { message.error('无法预览文件'); } }; const SearchResultList: React.FC<SearchResultListProps> = ({ keyword }) => { const [currentPage, setCurrentPage] = useState(1); const [pageSize] = useState(10); // 固定每页条数 const [results, setResults] = useState<AssetsItem[]>([]); const [total, setTotal] = useState(0); const [loading, setLoading] = useState(false); // 请求数据 useEffect(() => { if (!keyword) return; setLoading(true); fetch(`/ds/dsbaseinfo/globalSearchAssets`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ keywords: keyword, pageNum: currentPage, pageSize, }), }) .then((res) => res.json()) .then((data: ApiResponse) => { setResults(data.list || []); setTotal(data.total || 0); }) .catch((err) => { console.error('请求失败:', err); message.error('请求失败'); }) .finally(() => { setLoading(false); }); }, [keyword, currentPage]); const handlePageChange = (page: number) => { setCurrentPage(page); }; const isEmpty = !results || results.length === 0; return ( <div> {loading && <div>加载中...</div>} {isEmpty && !loading && ( <div style={{ textAlign: 'left', padding: '50px 20px', color: '#999', fontSize: '16px', }}> 您搜索的关键词暂无相关数据资产 </div> )} {!isEmpty && ( <> <List dataSource={results} renderItem={(item) => ( <List.Item style={{ marginBottom: -5 }} key={item.id}> <Card style={{ width: '100%', padding: 10 }} bodyStyle={{ padding: 5 }}> <Title level={4}> <a href="#">{highlightKeyword(item.dsName, keyword)}</a>&nbsp;&nbsp;&nbsp; {item.isConfirm === 'true' ? ( <Tag color="red" key={item.id}> 数据已确认 </Tag> ) : null} </Title> <Text type="secondary">{highlightKeyword(item.dsTableName, keyword)}</Text> <div style={{ margin: '8px 0' }}> {item.tags.split(',').map((tag, index) => ( <Tag color="blue" key={index}> {highlightKeyword(tag, keyword)} </Tag> ))} </div> <Paragraph>{highlightKeyword(item.dsMemo, keyword)}</Paragraph> <Space direction="vertical" size="small"> {/*新增资产详情页 所以里面要缩减*/} {/*<Text>*/} {/* 范围:<Text strong>{highlightKeyword(item.dsRange, keyword)}</Text>*/} {/*</Text>*/} {/*<Text>*/} {/* 领域:<Text strong>{highlightKeyword(item.areaName, keyword)}</Text> &nbsp;&nbsp;&nbsp;*/} {/* 系统:<Text strong>{highlightKeyword(item.sysName, keyword)}</Text> &nbsp;&nbsp;&nbsp;*/} {/* 对象:<Text strong>{highlightKeyword(item.bussinessObjName, keyword)}</Text> &nbsp;&nbsp;&nbsp;*/} {/* 流程:<Text strong>{highlightKeyword(item.processPointName, keyword)}</Text>*/} {/*</Text>*/} {/*<Text>*/} {/* 创建人:<Text strong>{highlightKeyword(item.createUser, keyword)}</Text>*/} {/*</Text>*/} {/*<Text>*/} {/* 数据Owner:<Text strong>{highlightKeyword(item.dsOwnerName, keyword)}</Text>*/} {/*</Text>*/} {/*<Text>*/} {/* 类型:<Text strong>{highlightKeyword(item.dsType, keyword)}</Text>*/} {/*</Text>*/} {/* 如果有样例文件则显示 */} {item.demoFileName && item.demoFileName !== '' ? ( <Text> 样例数据:{' '} <a href="#">{highlightKeyword(item.demoFileName, keyword)}</a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span onClick={() => handlePreview(item.demoOssFilePath)} style={{ color: 'blue', cursor: 'pointer', marginRight: 10 }} > 预览 </span> &nbsp;&nbsp;&nbsp; <span> <a href={item.demoOssFilePath}>下载</a> </span> </Text> ) : null} </Space> </Card> </List.Item> )} /> <CustomPagination current={currentPage} total={total} pageSize={pageSize} onPageChange={handlePageChange} /> </> )} </div> ); }; export default SearchResultList; 以上代码打开页面时 不能滚动,刷新一下就好了 ant design pro
08-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值