67 votes

Text dans les balises HTML CSS de bordure

Je voudrais avoir une div qui ressemble à ceci :

exemple de bordure

Est-il possible de le faire avec HTML + CSS ? Je vais également animer cette div avec jQuery. Lorsque la div est masquée, je voudrais que le titre et la ligne du haut s'affichent.

98voto

Bazzz Points 9487

Oui, mais ce n'est pas un div, c'est un fieldset

fieldset {
    border: 1px solid #000;
}

  AAA

62voto

Jason Gennaro Points 20848

Vous pouvez faire quelque chose comme ceci, où vous définissez une marge négative sur le h1 (ou tout autre en-tête que vous utilisez)

div{
    height:100px;
    width:100px;
    border:2px solid black;
}

h1{
    width:30px;
    margin-top:-10px;
    margin-left:5px;
    background:white;
}

Note : vous devez définir un fond ainsi qu'une largeur sur le h1

Exemple : http://jsfiddle.net/ZgEMM/


ÉDITER

Pour que cela fonctionne en cachant le div, vous pourriez utiliser du jQuery comme ceci

$('a').click(function(){
    var a = $('h1').detach();
    $('div').hide();
    $(a).prependTo('body');    
});

(Vous devrez modifier...)

Exemple #2 : http://jsfiddle.net/ZgEMM/4/

20voto

PeterS Points 1347

Je sais un peu tard pour la fête, cependant je pense que les réponses pourraient nécessiter plus d'investigation/d'input. J'ai réussi à créer la situation sans utiliser la balise fieldset - ce n'est de toute façon pas correct car si je ne suis pas dans un formulaire alors je ne devrais pas vraiment le faire.

/* Les styles vont ici */

#info-block section {
    border: 2px solid black;
}

.file-marker > div {
    padding: 0 3px;
    height: 100px;
    margin-top: -0.8em;

}
.box-title {
    background: white none repeat scroll 0 0;
    display: inline-block;
    padding: 0 2px;
    margin-left: 8em;
}

        Audit Trail

Ceci peut être vu dans ce plunk:

Cadre de contour avec titre

Ce que cela réalise est le suivant:

  • pas d'utilisation de balises fieldset.

  • utilisation minimale de CSS pour créer un effet avec juste quelques paddings.

  • Utilisation de "em" margin top pour créer un titre relatif à la police.

  • utilisation de display inline-block pour obtenir une largeur naturelle autour du texte.

Quoi qu'il en soit, j'espère que cela aidera les futurs stylistes, on ne sait jamais.

8voto

Mahdi Bashirpour Points 1406

Texte encadré avec un fond de texte transparent

.box{
    background-image: url("https://i.stack.imgur.com/N39wV.jpg");
    width: 350px;
    padding: 10px;
}

/*commencer le premier cadre*/
.first{
    width: 300px;
    height: 100px;
    margin: 10px;
    border-width: 0 2px 0 2px;
    border-color: #333;
    border-style: solid;
    position: relative;
}

.first span {
    position: absolute;
    display: flex;
    right: 0;
    left: 0;
    align-items: center;
}
.first .foo{
    top: -8px;
}
.first .bar{
    bottom: -8.5px;
}
.first span:before{
    margin-right: 15px;
}
.first span:after {
    margin-left: 15px;
}
.first span:before , .first span:after {
    content: ' ';
    height: 2px;
    background: #333;
    display: block;
    width: 50%;
}

/*commencer le deuxième cadre*/
.second{
    width: 300px;
    height: 100px;
    margin: 10px;
    border-width: 2px 0 2px 0;
    border-color: #333;
    border-style: solid;
    position: relative;
}

.second span {
    position: absolute;
    top: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.second .foo{
    left: -15px;
}
.second .bar{
    right: -15.5px;
}
.second span:before{
    margin-bottom: 15px;
}
.second span:after {
    margin-top: 15px;
}
.second span:before , .second span:after {
    content: ' ';
    width: 2px;
    background: #333;
    display: block;
    height: 50%;
}

        FOO
        BAR

        FOO
        BAR

7voto

Mahdi Bashirpour Points 1406
   VOTRE TITRE 

  Lorem ipsum dolor sit amet, est et illum reformidans, at lorem propriae mei. Qui legere commodo mediocritatem no. Diam consetetur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X