2014-06-11 18 views
5

Bir HTML öğesinin etrafında bir textarea HTML öğesini sarmanın bir yolu var mı? Benim durumumda, textarea'yı etiketin etrafına sarmak istiyorum. * Metin alanını olduğuTekstili bir HTML öğesinin etrafına sarın

Label name: ********* 
********************* 
********************* 

:

Bu benim ulaşmak için deneyin şeydir.

+0

@Salman A, teşekkür f ya da düzenleme, – Canutza

+0

'un ne istediğini netleştirmemesi için mücadele ediyordum, textarea dikdörtgen şekilli bir blok gibi görünüyor, satır içi bir öğe olarak ele alınamıyor. Farklı bir bakış açısı için –

cevap

4

<textarea> içindeki HTML etiketlerini kullanamazsınız, ancak etiketi istenen konuma yerleştirmek için mutlak konum belirleme kullanabilirsiniz. Etiket bunu örtüşmeyen böylece

Ardından, textarea ilk satırını dengelemek için CSStext-indent özelliği (more info on MDN) kullanabilir.

div { 
 
    position: relative; 
 
} 
 

 
label { 
 
    position: absolute; 
 
    top: 0; 
 
    left: 0; 
 
    border: 1px solid #000; 
 
    width: 115px; 
 
    line-height: 1em; 
 
} 
 

 
textarea { 
 
    text-indent: 120px; 
 
    margin: 0; 
 
    line-height: 1.2em; 
 
}
<div> 
 
    <label>This is the label :</label> 
 
    <textarea cols="30" rows="10"></textarea> 
 
</div>

+0

Benden 2 dakika daha hızlı! –

+0

@SalmanA bu oldukça yakın! Ben soru üzerinde aynı düzenleme yapmak için gidiyordum ama sen daha hızlı olduktan sonra ^^ –

+1

Wow, işe yarıyor, bu metin-indent özelliği hakkında clueless oldu. Teşekkür ederim! – Canutza

2

Sen, bir div öğesi etiketi yerleştirmek div düzenlenebilir yapmak ve etiketi un-düzenlenebilir yapmak için deneyebiliriz ... böyle

şey: Sadece ihtiyaç Bundan sonra

<div onClick="this.contentEditable='true';"> 
    <label onClick="this.contentEditable='false';">text 1</label> 
    text 2 
</div> 

etiketinizi ve divunuzu css ile düzenleyin ve div içindeki bilgileri (etiket hariç) bir metin kutusunun içindeki metin olarak kullanın.

İşte nasıl çalışacağına bir göz atmak için bir jsfiddle.

+0

+1 –

+0

@Nisha Teşekkürler, tarayıcının/işletim sisteminin kim olduğunu bilerek yanlış gitmesini önlemek için mümkün olduğunca konumlandırmadan kaçınmaya çalışıyorum. Ama diğer cevapların bazı metnin kazıma problemine sahip olmadığını kabul edeceğim. –

+0

CSS çözümü oldukça sağlam ve bunu yapmama izin veren bir Drupal web sitesi için kullanmak istiyorum, ama yine de teşekkürler! – Canutza

2

Ben text-indent mülkiyet textarea elemanlarında ne kadar iyi çalıştığını emin değilim. textarea metnin ilk satırına girinti için sabit genişlikli

  • Kullanım text-indent özelliği

    • konumlandırmayı kullanarak textarea sol üst köşesi etiketi hizalayın ve set: Bu yeteri kadar iyiyse, bunu yapabilirsin

    Demo here

    <div class="position-helper"> 
        <label>Label name:</label> 
        <textarea></textarea> 
    </div> 
    
    .position-helper { 
        position: relative; 
    } 
    .position-helper label { 
        position: absolute; 
        left: 1px; 
        top: 1px; 
        background-color: #F0F0F0; 
        /* font-size normalized so that em values match */ 
        font-size: 16px; 
        width: 10em; 
    } 
    textarea { 
        box-sizing: border-box; 
        margin: 0; 
        width: 100%; 
        /* font-size normalized so that em values match */ 
        font-size: 16px; 
        text-indent: 10em; 
    } 
    
  • 1

    Us e text-indent Mülk. Gereksiniminize göre text-indent değerini değiştirin.

    HTML:

    <div> 
        <label><b>Label name:</b></label> 
        <textarea name="textarea1" id="" cols="30" rows="10" placeholder="PlaceHolder Text For the Text Area"></textarea> 
    </div> 
    

    CSS:

    div 
    { 
        position:relative; 
    } 
    label { 
        position:absolute; 
        top:0; 
        left:0; 
        border:0; 
    } 
    textarea { 
        text-indent:90px; 
        margin:0; 
        border:1px solid blue;  
    } 
    

    ÇIKIŞ

    OUTPUT

    İlgili konular