zoukankan      html  css  js  c++  java
  • 让<li>不显示超出内容,显示... (编程方法和CSS方法)

    image

    在用户控件的repeter控件中放了一个<li>:

    <li class="goodsname">
            <a id="A2" target="_blank" title='<%# Eval("ProductName") %>' href='<%# Eval("ProductID","~/ViewProduct.aspx?ID={0}") %>' runat="server">
                <%# Eval("ProductName") %></a>
    </li>

    希望商品名超链接文字只显示行,超出2行范围的用…显示。

    有2个办法可以实现,第一:

    把 <%# Eval("ProductName") %> 改写为 <%# GetString( Eval("ProductName" )) %>

    然后在用户控件.cs文件中添加下面这个方法:

    protected string GetString(object obj)
    {
        string str = Convert.ToString(obj);
        string strReturn = "**";     
        if (!string.IsNullOrEmpty(str))
        {
         //如果商品名在首页最新商品列表中超过2行,将超出的文字省略为...
            if (str.Length > 34)
            {
                strReturn = str.Substring(0, 34) + "...";
            }
            else
            {
                strReturn = str;
            }
        }
        return strReturn;
    }

     

    第二种方法只能让超出一行范围的文字显示为…, 多行无法使用这个方法:

    div+css设置列表li超出部分显示省略号

    在网页设计中,会遇到文本超过固定长度导致整体的网页变形的情况。程序员往往需要截取固定的长度来实现某些固定长度的控制。介绍一种直接采用CSS 的代码控制来实现文本截取的方法。与程序员的直接字符截取的方式有点区别,其优势是可以自动控制文本显示的长度;缺点是不同浏览器的兼容性并不完美。使用到 overflow,text-overflow,white-space 这三个主要的属性,其他的代码属于修饰作用。

        CSS代码:
        <style>
        .texthidden{
         200px;
         overflow:hidden;
         text-overflow:ellipsis;
         white-space:nowrap;
         border:1px solid #ddd;}
        </style>

        HTML代码:
        <div class="texthidden">
        CSS让容器的溢出部分内容隐藏起来
        </div>

    代码分析:
    1. 200px; //指定宽度:
    2. overflow:hidden; //将超出内容隐藏
    3. text-overflow:ellipsis; //IE专用属性,文本溢出时显示省略标记();其他浏览器不支持。
    4. white-space:nowrap; //强制内容不换行。强制在同一行内显示所有文本,直到文本结束或者遭遇 br 元素

        目前使用这种方法比较成功的示例是Gmail的内容显示,在IE下达到最好的效果。如果是FF那就比较糟糕,总是会出现截取半个中文的效果。其中涉及到最主要的原因是 text-overflow 这个属性只在IE下有效,目前很多CSS属性也存在这个问题,特别重要的是Margin和Padding这两个属性,往往导致页面出现各种不同的效果;在页面设计的时候,需要注意这些属性在不同浏览器的显示效果。

    ===========配图=============

    _______________________________方法二。_____________________________________________________

    <style>

    .ellipsis a{display: block; 300px;overflow: hidden;white-space: nowrap;-o-text-overflow: ellipsis;text-overflow: ellipsis;}  
    /* firefox only */ 
    .ellipsis:not(p) {clear: both;}  
    .ellipsis:not(p) a {max- 300px;float: left;}  
    .ellipsis:not(p):after {content: "..";float: left; 25px;padding-left: 1px;}
    </style>

    <div class="ellipsis"><a href="">在被征服后的岁月里,蒂卡尔自己也走上侵略道路,在玛雅全境扩张它的势力范围。</a></div> 

    效果和上圈差不多,只是省略号的个数在不同浏览器中的个数也不同。

  • 相关阅读:
    python基础总结一
    python解释器介绍与安装
    09 字符编码
    python 九九乘法表
    08 基本数据类型及内置方法
    07 Python语法入门之流程控制
    06 Python语法入门之与用户交互、运算符
    05 Python语法入门之垃圾回收机制
    04 Python语法入门之基本数据类型
    03 python语法入门之变量
  • 原文地址:https://www.cnblogs.com/seapub/p/2366404.html
Copyright © 2011-2022 走看看