2017-09-05 9 views
-2

휴대 기기에 요소를 가져 오는 데 문제가 있습니다. 내 CSS에서모바일에서 링크, 버튼 및 div를 가리키는 방법은 무엇입니까?

, 내가 같은 입력 : 그러나 내 아이폰과 다른 터치 장치에이 내 바탕 화면에 잘 가져가 보인다

.button:hover { 
    background-color: #fff; 
} 

을, 나는 버튼 마우스 오버를 할 수없는 것.

+4

모바일 장치가없는 : 추가/.hover 클래스를 제거합니다 자바 스크립트를 만들

@media (min-width: 681px) { .mobile-mask { display: none; } } 
  • :이 경우에는 그냥) 빠른 솔루션을 필요가 있기 때문에 – TylerH

  • +0

    를 가져 마우스 커서가 없으면 휴대 기기에서 버튼을 가리킬 수 없습니다. 그러나 .activate를 적절히 사용하여 배경색을 다음과 같이 설정할 수 있습니다.'.button : activate {...}' – WebGuy

    +0

    https://stackoverflow.com/questions/2427447/does-css-hover-work-on을 참조하십시오. -mobile-devices – TylerH

    답변

    2

    모바일에 hover 이벤트가 없으므로 마우스 오버 동작을 정의 할 수 있으며 데스크톱에서 작동합니다. 하지만 모바일에서는 클릭/터치만으로이 호버를 볼 수 있습니다.

    0

    호버는 다른 것을 의미합니다. 이 경우 HTML 버튼이나 사용하는 요소에 마우스 커서를 올려 놓습니다.

    휴대 전화의 경우 마우스 커서가 없습니다. 그 항상 클릭. 대부분의 경우 호버는 클릭 또는 터치에서만 표시됩니다. 이 기능이 정말로 필요한 경우 Javascrit onclick() 또는 다른 기능을 사용하면 클릭하거나 터치 할 때 약간의 기능을 추가 할 수 있습니다.

    +0

    5.5 인치 안드로이드 7 크롬 브라우저에서 두 링크를 모두 확인했고 모두 동일하게 작동했습니다. 클릭하면 배경이 바뀝니다. 클릭을 계속 누르고 있으면 배경이 바뀌지 않습니다. 내가 줄 수있는 가장 좋은 이유와 설명은 장치와 브라우저가 모두 이와 다른 반응을 보입니다.어떤 사람들은 경험을 복제하기 위해 최대한 노력할 수도 있지만, 다른 사람들은 두 장치가 동일하지 않고 따로 유지한다는 것을 알고 있습니다. 내 충고는 보편적 인 특징에 초점을 맞추고 있습니다. 호버는 그렇게 작동하지 않습니다. 내가 말했듯이 자바 스크립트를 사용하여 트릭을해야 할 것입니다. – mw509

    +0

    당신은이 사이트에서 몇 가지 테스트를 실행할 수 있습니다. [link] (http://www.mobilephoneemulator.com/) – mw509

    0

    jQuery/CSS에서이 문제를 신속하게 해결하기 위해 다음을 수행했습니다.

    <div class="one-block"> 
        .... 
        <div class="mobile-mask"></div> 
    </div> 
    
    :> .mobile-mask -이 블록에서 마지막 요소

    .one-block { position: relative; } 
    
  • 추가 : 그 위치

    .one-block:hover, .one-block.hover { ... } 
    
  • :

    1. 이처럼 내 요소의 스타일을 썼다

    2. .mobile-mask 위치 : 비 모바일 (이 부분에 대한

      .mobile-mask { 
          position: absolute; 
          top: 0; 
          bottom: 0; 
          left: 0; 
          right: 0; 
      } 
      
    3. 숨기기 전혀하지 정확 : 단지 CSS로. 당신이 어떤 다른 수단에 의해 모바일 장치를 감지하고, 예를 들어, 클래스를 몸체에주는 것이 더 정확할 때보 다.

      $('.mobile-mask').on('click', function(){ 
          $('.list .mobile-mask').show(); 
          $('.list .one-block').removeClass('hover'); 
          $(this).hide(); 
          $(this).parent().addClass('hover'); 
      }); 
      $(window).on('resize', function(event){ 
          var windowWidth = $(this).width(); 
          if(windowWidth > 680){ 
          $('.list .one-block').removeClass('hover'); 
          } 
      });