Maison  >  Article  >  interface Web  >  Explication détaillée des exemples de masquage de débordement (débordement) en CSS

Explication détaillée des exemples de masquage de débordement (débordement) en CSS

黄舟
黄舟original
2017-11-22 09:26:237546parcourir

Dans le développement WEB front-end, nous rencontrons souvent un débordement de contenu en DIV, ce qui affecte la beauté de la page. Alors, comment masquer le débordement, je pense que tout le monde pensera certainement au débordement en CSS <.>, aujourd'hui je vais vous présenter l'explication détaillée du masquage de débordement (overflow) en CSS !

Description de l'attribut de débordement :

Version : CSS2 Compatibilité : IE4+ NS6+ Héritage : Aucun

Syntaxe :

overflow : visible | auto | hidden | scroll
Les descriptions des paramètres pertinents sont les suivantes :

visible : : Ne coupe pas le contenu et n'ajoute pas de barres de défilement. Si cette valeur par défaut est explicitement déclarée, l'objet sera découpé à la taille de la fenêtre ou du cadre contenant l'objet. Et le paramètre d'attribut de clip sera invalide.

auto : C'est la valeur par défaut de l'objet body et du textrea. Coupez le contenu et ajoutez des barres de défilement si nécessaire
masqué : Ne pas afficher le contenu qui dépasse la taille de l'objet.
défilement : affiche toujours les barres de défilement.

Instructions d'utilisation et points clés :

◎ Récupérez ou définissez comment gérer le contenu lorsque le contenu de l'objet dépasse la hauteur et la largeur spécifiées.

◎ Définir l'objet textarea sur la valeur cachée masquera ses barres de défilement.
◎ Pour table, si l'attribut
table-layout est défini sur fixe, l'objet td prend en charge l'attribut de débordement avec la valeur par défaut de caché. S'il est défini sur caché, défilement ou auto, le contenu dépassant la taille td sera coupé. S'il est défini sur visible, le texte supplémentaire débordera vers les cellules à droite ou à gauche de ◎ (selon le paramètre de l'attribut direction). ◎ À partir d'IE5, cette propriété est disponible sur la plateforme MAC. La fonctionnalité de script correspondante est le débordement.

Exemple :

body { overflow: hidden; }
div { overflow: scroll; height: 100px; width: 100px; }

text-overflow Version : IE6+ Propriétés propriétaires Héritage : Aucun

div overflow caché div text Utiliser des points (points de suspension) au lieu de pour le débordement. Dans la disposition div, le contenu déborde du conteneur et dépasse la largeur limitée par le conteneur. J'étais très confus, alors je l'ai collecté et trié, et j'ai découvert que je pouvais faire en sorte que le contenu dépasse le conteneur pour afficher des ellipses. Cette approche résout non seulement le problème, mais est également très belle. Les amis intéressés peuvent s'y référer

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh"> 
<head profile="http://www.w3.org/2000/08/w3c-synd/#"> 
<meta http-equiv="content-language" content="zh-cn" /> 
<meta http-equiv="content-type" content="text/html;charset=gb2312" /> 
<title>div中溢出文字用点代替的代码</title> 
<style type="text/css"> 
/*<![CDATA[*/ 
li { 
width:200px; 
white-space:nowrap; 
text-overflow:ellipsis; 
-o-text-overflow:ellipsis; 
overflow: hidden; 
} 
/*]]>*/ 
</style> 
</head> 
<body> 
<ul> 
<li><a href="#">web标准常见问题大全web标准常见问题大全</a></li> 
<li><a href="#">web标准常见问题大全web标准常见问题大全</a></li> 
<li><a href="#">web标准常见问题大全web标准常见问题大全</a></li> 
<li><a href="#">web标准常见问题大全web标准常见问题大全</a></li> 
<li><a href="#">web标准常见问题大全web标准常见问题大全</a></li> 
</body> 
</html>

TD peut aussi déborder et masquer l'affichage

Peut-être que dès que je nommerai cet article comme ça, quelqu'un le fera demander : Pourquoi faites-vous toujours attention à la table ? Ah, elle est obsolète depuis longtemps... dépêchez-vous d'utiliser Xhtml... div c'est bien... ul c'est bien... ol c'est bien... dl c'est bien... c'est fini, je ne sais pas quoi d'autre est mieux.

La table est-elle vraiment dépassée ? Comprenez-vous vraiment le tableau ? Savez-vous vraiment utiliser les tableaux ?

La guerre des mots n'est pas ce que nous voulons faire, laissons le soin à ceux qui ont tout le temps.

Retour au sujet :

Je ne me souviens pas quand quelqu'un utilisait un tableau pour simuler le DataGrid et demandait pourquoi le texte du td qui dépasse la largeur fixe ne pouvait pas être masqué, mais va envelopper directement?

Oui, c'est bien le cas, comme :

<style type="text/css">
table {width:500px;;}
.col1 {width:100px;}
.col2 {width:200px;}
.col3 {width:200px;}
td {white-space:nowrap;overflow:hidden;}
</style>
<table border="1" cellspacing="0" summary="回头来看看Table:TD也玩overflow:hidden">
<tr>
<td class="col1">神舟 优雅Q400N</td>
<td class="col2">优雅Q400N,采用Intel Core2 Duo(Merom) T5450(1.66G)处理器</td>
<td class="col3">迅驰4平台,突出的性价比,漂亮的外观</td>
</tr>
</table>

Exécutez le code ci-dessus, vous constaterez que le texte dans la cellule qui dépasse le fixe width ne sera pas masqué, mais il est affiché dans une nouvelle ligne, ce n'est évidemment pas mon intention.

Il semble que ce soit une caractéristique du tableau. Il ne peut pas bien supporter la combinaison de {width:*px;white-space:nowrap;overflow:hidden;}. En dernière analyse, il est blanc. -space : Nowrap ne fonctionne pas, il semble donc que overflow:hidden ne soit pas valide. 566770df0775f3e1934702e4353c78d9aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab90dd5946f0946207856a8a37f441edf,这个时候就不需要{white-space:nowrap}来强制它在一行内Afficher, car cette série de a sera reconnue comme un seul mot sans saut de ligne, donc les a qui dépassent la largeur de .col1 seront masqués🎜>

 [Solution 1:]

Plus tard, quelqu'un le est mentionné que l'utilisation d'un pourcentage de largeur est suffisante. Après test, il est en effet possible de modifier légèrement le style de quelques lignes dans le premier paragraphe et de laisser les autres inchangées :

Après avoir exécuté le code modifié, Vous constaterez que le texte qui dépasse la largeur est bien masqué, et l'effet souhaité semble être obtenu.
.col1 {width:20%;}
.col2 {width:40%;}
.col3 {width:40%;}

En fait, utiliser une largeur en pourcentage peut effectivement résoudre le problème du masquage du texte, mais cela ne semble pas être la meilleure solution, car parfois nous avons besoin d'une largeur fixe, pas d'une largeur en pourcentage.

La racine de tout cela est de savoir comment afficher le texte de la cellule sur une seule ligne sans retour à la ligne.

 [Solution 2 :]

Pour répondre à cette exigence, en plus d'utiliser des styles, on peut aussi penser à une balise f44a345470ed5309298c118c07c6efac la fonction de cet élément est de forcer le contenu à s'afficher sur une seule ligne. Apportez les modifications suivantes au code ci-dessus, en laissant tout le reste inchangé :

<table border="1" cellspacing="0" summary="回头来看看Table:TD也玩overflow:hidden">
<tr>
<td class="col1"><nobr>神舟 优雅Q400N</nobr></td>
<td class="col2"><nobr>优雅Q400N,采用Intel Core2 Duo(Merom) T5450(1.66G)处理器</nobr></td>
<td class="col3"><nobr>迅驰4平台,突出的性价比,漂亮的外观</nobr></td>
</tr>
</table>

做了这个修改,会发现,效果确实达到,是不是该兴奋呢?不,这似乎还不是最佳的解决方案,因为毕竟使用了一个许久不用且不推荐使用的元素标记,这多少让人觉得有点不爽。

  沿着这个思路,我换了一个角度来考虑这个问题,发现问题迎刃而解。

  既然在固定宽度的单元格内无法只简单的给th,td加上white-space:nowrap,那么我们在固定宽度的单元格内再加一个标记元素呢?

最佳方案:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<title>回头来看看Table:TD也玩overflow:hidden</title>
<style type="text/css">
table {width:500px;;}
.col1 {width:100px;}
.col2 {width:200px;}
.col3 {width:200px;}
th strong {display:block;width:100%;}
tr strong,tr td {white-space:nowrap;overflow:hidden;}
</style>
</head>
<body>
<table border="1" cellspacing="0" summary="测试">
<thead>
<tr>
<th class="col1"><strong>产品名称</strong></th>
<th class="col2"><strong>产品介绍</strong></th>
<th class="col3"><strong>产品备注</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td>神舟 优雅Q400N</td>
<td>优雅Q400N,2007年7月上市,采用Intel Core2 Duo(Merom) T5450(1.66G)处理器</td>
<td>迅驰4平台,突出的性价比,漂亮的外观</td>
</tr>
</tbody>
</table>
</body>
</html>

运行上面的代码,会发现这样的做法是可以的,而且从代码的简洁性、可读性和合理性几方面来说,都较前几种方案为好。

总结:

本文详细介绍了CSS中溢出隐藏(overflow)的实例详解,相信下伙伴么可以进一步的了解! 还没有做过给单元格隐藏超过固定宽度内容的同学,可先在机器上玩玩,然后再来看本文

相关推荐:

关于溢出隐藏的详细介绍

分享文字溢出隐藏实例

溢出隐藏:最全的利用css解决内容溢出问题的几种方案

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn