Here's a code

```
 <a id="link1" href="#" >About</a>
 <a id="link2" href="#">Contact us</a>

```

I want the link1's color to be changed when link2 is hovered.
Is it possible with css?.
['https://Stackoverflow.com/questions/29598991', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/4466855/']
Since CSS does not seem to be able to handle this, try JavaScript

```js
window.onload=function() {
  document.getElementById("link2").onmouseover=function() {
    document.getElementById("link1").style.color="red";
  }
  document.getElementById("link2").onmouseout=function() {
    document.getElementById("link1").style.color="blue";
  }
}
```

```html
 <a id="link1" href="#" >About</a>
 <a id="link2" href="#">Contact us</a>
```

Or using siblings

```js
function prevSib(elem) {do { elem = elem.previousSibling;} while ( elem && elem.nodeType !== 1 ); return elem; }

window.onload=function() {
  document.getElementById("link2").onmouseover=function() {
    prevSib(this).style.color="red";
  }
  document.getElementById("link2").onmouseout=function() {
    prevSib(this).style.color="blue";
  }
}
```

```html
<a id="link1" href="#" >About</a>
<a id="link2" href="#">Contact us</a>
```
Using pure css it is not possible go backward. You can go in cascading ways.

But, you can do it with JQuery. like: 

```js
$(document).ready(function(){
    $(".link2").mouseover(function(){
        $(".link1").css("color", "red");
    });
     $(".link2").mouseout(function(){
        $(".link1").css("color", "black");
    });
});
```

```html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="link1" class="link1" href="#" >About</a>
 <a id="link2" class="link2" href="#">Contact us</a>
```

Hope it helps.