요소 이름에 CSS 스타일을 적용 할 수 있습니까?


176

현재 CSS 스타일을 적용하는 HTML을 제어 할 수없는 프로젝트를 진행 중입니다. 그리고 HTML은 요소를 구별하기에 충분한 id 및 클래스 선언이 없다는 의미에서 레이블이 잘 지정되지 않았습니다.

그래서 id 또는 class 속성이없는 객체에 스타일을 적용 할 수있는 방법을 찾고 있습니다.

때로는 양식 항목에 "이름"또는 "값"속성이 있습니다.

<input type="submit" value="Go" name="goButton">

name = "goButton"을 기반으로 스타일을 적용 할 수있는 방법이 있습니까? "가치"는 어떻습니까?

Google 검색에서 "이름"및 "값"과 같은 광범위한 용어가 웹 페이지에 나타나는 모든 종류의 인스턴스를 찾을 수 있기 때문에 찾기가 어렵습니다.

나는 대답이 '아니요'라고 의심하고 있습니다 ...하지만 누군가가 영리한 해킹을 가지고 있습니까?

모든 조언을 주시면 감사하겠습니다.

답변:



52

텍스트 입력 예

input[type=text] {
  width: 150px;
}

input[name=myname] {
  width: 100px;
}
<input type="text">
<br>
<input type="text" name="myname">



13

향후 Google 직원의 경우 @meder의 답변에있는 메소드 인 FYI는 name 속성이있는 모든 요소와 함께 사용할 수 있으므로 이름이있는 요소를 말하면 다음 <iframe>xyz같이 규칙을 사용할 수 있습니다.

iframe[name=xyz] {    
    display: none;
}   

name속성은 다음 요소에서 사용할 수 있습니다.

  • <button>
  • <fieldset>
  • <form>
  • <iframe>
  • <input>
  • <keygen>
  • <map>
  • <meta>
  • <object>
  • <output>
  • <param>
  • <select>
  • <textarea>

1
이것은 실제로 질문에 아무것도 추가하지 않습니다. name만약 당신이 정말로 원한다면 이 속성은 무엇이든 넣을 수 있습니다
Isaac

4

그때 당신의 질문을 이해한다면

예, ID 또는 이름을 사용할 수있는 경우 개별 요소의 스타일을 설정할 수 있습니다.

예 :

ID를 사용할 수 있다면 다음과 같이 요소를 제어 할 수 있습니다.

<input type="submit" value="Go" name="goButton">

var v_obj = document.getElementsById('goButton');

v_obj.setAttribute('style','color:red;background:none');

그렇지 않으면 이름을 사용할 수 있으면 다음과 같이 요소를 제어 할 수 있습니다.

<input type="submit" value="Go" name="goButton">

var v_obj = document.getElementsByName('goButton');

v_obj.setAttribute('style','color:red;background:none');

4

[name=elementName]{}태그없이 사용 하면 작동합니다. 이 이름을 가진 모든 요소에 영향을 미칩니다.

예를 들면 다음과 같습니다.

[name=test] {
  width: 100px;
}
<input type=text name=test>
<div name=test></div>


0

이것은 쿼리 선택기에 완벽한 작업입니다 ...

var Set1=document.querySelectorAll('input[type=button]');  // by type

var Set2=document.querySelectorAll('input[name=goButton]'); // by name

var Set3=document.querySelectorAll('input[value=Go]'); // by value

그런 다음 이러한 콜렉션을 반복하여 발견 된 요소에서 작동 할 수 있습니다.


0

입력에서 이름이 아닌 다른 요소를 사용하는 경우 속성이있는 다른 요소를 대상으로 지정할 수 있습니다.

    [title~=flower] {
      border: 5px solid yellow;
    }
    <img src="klematis.jpg" title="klematis flower" width="150" height="113">
    <img src="img_flwr.gif" title="flower" width="224" height="162">
    <img src="img_flwr.gif" title="flowers" width="224" height="162">

도움을 바랍니다. 감사합니다


0

input[type=text] {
  width: 150px;
  length: 150px;
}

input[name=myname] {
  width: 100px;
length: 150px;
}
<input type="text">
<br>
<input type="text" name="myname">


1
이 코드의 기능에 대한 설명을 추가해보십시오. 답변의 질을 극적으로 향상시킬 수 있습니다.
Christopher Moore

-2

jQuery를 사용할 가능성을 탐색 했습니까? 도달 범위 선택기 모델 (CSS와 유사한 구문)이 있으며 요소에 ID가없는 경우에도 부모-> 자식-> 손자 관계를 사용하여 선택할 수 있어야합니다. 그것들을 선택하면 매우 간단한 메소드 호출 (정확한 이름을 잊어 버림)이있어 CSS 스타일을 요소에 적용 할 수 있습니다.

사용하기 간단해야하며 보너스로 플랫폼 간 호환이 가능할 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.