To be able to select & style a particular element of a nested directive you'll need to have a mean to isolate that element. Also, only the :hover pseudo-class won't be enough, so binding some events can solve the problem. Below is a sample directive which works this way:
app.directive('directiveSample', function () {
return {
restrict: 'E',
transclude: true,
// Wrap content
template: '<div class="container-directive" ng-transclude></div>',
link: function (scope, element, attr) {
element.bind('mouseover', function(ev) {
ev.stopPropagation();
var wrappers = angular.element(document.getElementsByClassName('container-directive'));
angular.forEach(wrappers, function(value, key) {
angular.element(value).children('span').removeClass('active-element');
});
element.children('.container-directive').children('span').addClass('active-element');
});
}
}
});
The full plunker is HERE.